当支持字段存在时,如何通过反射获取类字段?

igo*_*udi 3 c# reflection custom-attributes backing-field

我有一个简单的POCO类,例如

class C {
  [MyAtrib]
  public int i {get; set;}
  [MyAtrib]  
  public int i2;
}
Run Code Online (Sandbox Code Playgroud)

我打电话的时候:

GetType().GetFields(
  BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
Run Code Online (Sandbox Code Playgroud)

在那个类(实例)上我无法得到FieldInfo那些自动生成getter/setter(即int i上面)的成员.

实际上,我正在尝试读取那些自定义属性(MyAtrib),而不能为那些具有的属性执行此操作{get; set;}.

这是为什么?我希望得到这两个i和它的(私人)支持领域,因为i是公开的.

我能到iMyAtrib某种方式通过反射?

Mis*_*sky 7

你现在就得到了田地,但它public int i {get; set;}是一个财产.你需要得到属性:

// note: properties -> generally public
GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
Run Code Online (Sandbox Code Playgroud)