标题几乎说明了一切,我怎么知道我是否正在获得编译器为 {get; 生成的 backingfield ?设置;} 属性?
我正在运行此代码来获取我的 FieldInfos:
Class MyType
{
private int foo;
public int bar {get; private set; }
}
Type type = TypeOf(MyType);
foreach (FieldInfo fi in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.NonPublic))
{
// Gets both foo and bar, however bar is called <bar>k__backingfield.
}
所以问题是,我能否以某种方式检测到 FieldInfo 是一个后备字段,而不依赖于检查其名称? (这是相当没有记录的,并且可能在框架的下一版本中被破坏)
Check .IsDefined(typeof(CompilerGeneratedAttribute), false);
在他们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)