c# - (C#) 如何根据name字段存值?

标签 c# reflection getproperty

当我尝试这样做时,我有一个包含当前对象中字段名称的 ArrayList:

foreach(string name in array)
{
  PropertyInfo property =  this.GetType().GetProperty(name);
  property.SetValue(this, value , null);
}

执行失败,属性没有值(在 SharpDevelop 中只说“null”)。字段名称正常且存在,发生了什么?

最佳答案

您的属性是否有 setter (set 访问器)。在设置属性之前最好检查一下

if(property != null && property.CanWrite)
{
    property.SetValue(this, value , null);
}

顺便说一句,您要访问的是字段还是属性?因为你说字段的名称是正确的并且存在

关于c# - (C#) 如何根据name字段存值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38809843/

相关文章:

c# - 如何以编程方式找出机器的最后登录时间?

C# 动态和扩展方法解决方案?

Java system.getProperty 问题

java - Android Java objModelClass.getClass().getDeclaredFields() 返回 "$change"作为一个字段

javascript - getPropertyValue ("backgroundColor") 返回一个空字符串

c# - 尝试查找给定深层嵌套类/对象的属性名称

c# - 我怎样才能重构它以使其工作而不严重破坏模式?

c# - WCF场景下回调其他客户端

c# - 流式下载的 WCF 最佳实践/配置

pointers - 为什么在 Go 中将指针放在 interface{} 中会导致 reflect 丢失类型名称?