它看起来像是返回属性的背景字段,如果称为:
type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
是否有一种方法可以返回类用户在同类中声明的所有字段,而没有任何备份字段/编译器生成的字段/等。?
编辑:依靠[CompilerGenerated]
属性安全吗?
所有此类字段均标记为compilergeneratedAttribute,因此您可以这样过滤:
var fields = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.Where(f => f.GetCustomAttribute<CompilerGeneratedAttribute>() == null).ToArray();