如果我在类里面声明以下内容:
private int? MyID = null;
然后尝试通过反射访问它,它将无法找到它。我的意思是,下面会将 gProp 设置为 null:
gType = refObj.GetType();
gProp = gType.GetProperty(PropertyName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
但是,如果我将其声明为:
private int? MyID { get; set; }
这对我来说一点也不奇怪,因为我已经知道会发生这种情况。但是,我想确认;无论如何要使第一个声明与反射一起工作,或者我是否提供了 Getter/Setter 以使反射起作用?
谢谢!
最佳答案
它是一个字段,而不是一个属性,因此 GetProperty
不会返回它。您需要使用 GetField
方法。
关于c# - 没有 Getter/Setter 的反射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478047/