确定FieldInfo是否是编译器生成的后台

Ste*_*fen 4 c# reflection

标题几乎说明了一切,我怎么知道我是否正在为{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.
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,我可以以某种方式检测到FieldInfo是一个支持域,而不依赖于检查其名称吗?(这是非常没有文档的,可以在下一版本的框架中破解)

Mar*_*ell 9

检查.IsDefined(typeof(CompilerGeneratedAttribute), false);他们.