通过反射设置auto-property的值

时间:2015-07-17 16:55:29

标签: c# c#-6.0

我已经看到了关于如何通过反射调用属性的私有setter的各种线程。但是,没有setter的自动属性呢?

public class Test
{
    public string Property { get; } = "";
}

是否可以使用反射设置此只读属性的值?

  • PropertyInfo.SetMethod返回null
  • PropertyInfo.SetValue失败

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

  

是否可以使用反射设置此只读属性的值?

没有。这些属性由只读字段支持。 没有setter;在构造函数中执行的任何赋值都直接写入字段。

如果你的设计让你想通过反射写入只读属性,你应该重新审视你的设计:)