标题几乎说明了一切,我怎么知道我是否为{get;设置;}属性?
我正在运行此代码以获取我的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是一个支持域,而不依赖于检查其名称吗? (这是非常无证的,可以在下一版本的框架中破解)
答案 0 :(得分:9)
检查.IsDefined(typeof(CompilerGeneratedAttribute), false);
。