反射返回仅阅读属性的备份字段



它看起来像是返回属性的背景字段,如果称为:

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();

最新更新