我有一个来自第三方库的类,其中有一个只读属性叫做Name
。以下是该类的代码:
public class Person
{
public string Name {get;}
}
我想使用反射或其他合适的方法来设置
Name
属性的值,但我不知道该属性是如何实现的。具体而言,我不知道它是否有一个类似于这样的后备字段:private string m_name;
或者如果它的实现是这样的:
public string Name {get; private set;}
如何在这种情况下设置
Name
属性的值?
<Name>k__BackingField
。 - yaakovMono.Reflection
有一个扩展方法GetBackingField()
,用于PropertyInfo
,它返回FieldInfo
。这仅适用于自动属性。由于您说它是第三方库,很有可能它不是自动属性,您就没那么幸运了。 - Mr Anderson