c# - 通过反射设置自动属性的值

标签 c# c#-6.0

我看过各种关于如何通过反射调用属性的私有(private) setter 的线程。但是,如果没有 setter 的自动属性呢?

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

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

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

有什么想法吗?

最佳答案

Is it possible to set the value of this readonly property using reflection?

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

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

关于c# - 通过反射设置自动属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31480933/

相关文章:

c# - 在 C# 中是否可以使用同名的公共(public) getter 和私有(private) setter?

c# - 使用 while 循环取消查询永远挂起

c# 本地化问题,CultureInfo 挪威和丹麦,翻译不起作用

C# 6.0、.NET 4.51 和 VS2015 - 为什么字符串插值有效?

c# - C# 6 中的静态属性

dapper - Dapper 是否支持 POCO 中的 c#6 只读属性?

c# - 删除按钮出现在?

c# - 在没有反射的情况下将 "Code/Properties/Stuff"与 C# 中的字段相关联。我太被 Javascript 灌输了

罗斯林 C#6 ?泛型类型中的运算符编译看起来很困惑

c# - 名称如何工作?