2
我有一个简单的POCO类,例如如何在支持字段存在时通过反射来获取类字段?
class C {
[MyAtrib]
public int i {get; set;}
[MyAtrib]
public int i2;
}
当我打电话:
GetType().GetFields(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
在该类上(实例)我不能得到FieldInfo
对于已经自动生成getter/setter方法的那些成员(即高于int i
)。
其实,我正在尝试阅读这些自定义属性(MyAtrib
),并且无法为具有{get; set;}
的那些属性执行此操作。
这是为什么?因为i
是公开的,所以我期望得到i
和(私人)支持字段。
我可以通过反射以某种方式得到i
的MyAtrib
吗?
那些有getter和setter方法不专业;他们是属性。 –
使用'GetProperties' –
你一定会得到后台字段,使用BindingFlags.NonPublic就足够了。它有一个难以形容的名字,' k__BackingField'。该属性*不适用于后台字段,它存在于属性上。调用GetProperty()需要检索它。 –