我有一个定义私有(private)成员的类,如下所示:
[MyCustomAttribute]
private Func<String, String> MyFuncMember = (val) => val + " World! ";
我正在尝试获取我放在它上面的属性。现在,我已尝试使用
Type.GetMembers()
、 Type.GetFields()
和 Type.GetMethods
以及适当的 BindingFlags
( BindingFlags.NonPublic
),但我无法获得该成员。我怎样才能找回它?如果定义的类是 sealed
类,会不会有问题?预先感谢您的回答。
最佳答案
尝试使用它作为您的绑定(bind)标志:
BindingFlags.NonPublic | BindingFlags.Instance
如果没有
BindingFlags.Instance
标志,它将无法找到您的实例字段。一般来说,当您使用
Type.GetField
时,您需要设置:BindingFlags.Instance
和 BindingFlags.Static
之一(或两者)和
BindingFlags.Public
和 BindingFlags.NonPublic
之一(或两者)。 |
运算符使用二进制或操作组合标志,这意味着两个标志都已设置。关于c# - 使用反射获取私有(private) Func<T> 成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4501901/