当存在支持字段时,如何通过反射获取类字段
本文关键字:字段 反射 何通过 获取 存在 支持 | 更新日期: 2023-09-27 18:35:35
我有一个简单的POCO类,例如
class C {
[MyAtrib]
public int i {get; set;}
[MyAtrib]
public int i2;
}
当我打电话时:
GetType().GetFields(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
在该类(实例)上,我无法获取那些自动生成 getter/setter 的成员FieldInfo
(即 int i
上文)。
实际上,我正在尝试读取这些自定义属性(MyAtrib
),但无法为那些具有{get; set;}
的属性执行此操作。
为什么?我希望得到i
和它的(私人)支持领域,因为i
是公共的。
我可以通过反思以某种方式了解i
MyAtrib
吗?
您现在会得到字段,但public int i {get; set;}
是一个属性。您需要获取属性:
// note: properties -> generally public
GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);