如果像这样调用,它看起来像Reflection返回属性的支持字段:
type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
有没有办法返回用户在类中声明的所有字段,而没有任何支持字段/编译器生成的字段/等。
编辑:依赖[CompilerGenerated]
属性是否安全?
答案 0 :(得分:1)
所有这些字段都标有CompilerGeneratedAttribute,因此您可以像这样过滤:
var fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(f => f.GetCustomAttribute<CompilerGeneratedAttribute>() == null).ToArray();