c# - 没有 Getter/Setter 的反射?

标签 c# .net reflection properties runtime

如果我在类里面声明以下内容:

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/

相关文章:

c# - Entity Framework Core 从现有数据库创建模型

.net - .NET如何利用IO线程或IO完成端口?

java - 使用 Java 反射在集换式卡牌游戏中实现卡牌和效果

c# - .net 中 Thread 类和 ProcessThread 类的区别?

C#:如何禁用表单移动?

java - 在 Java 中查找数组的维数

Java-Reflection-Spring如何识别参数是用户定义对象还是Primitive Type

c# - 与自定义比较器不同会给出 vauge 错误

c# - 如何检索自定义 C# 资源类常量的字符串值?

c# - 任务列表循环开始偏移量