我已经看到提出并回答了各种问题,我们可以使用反射来调用私有设置器,如下所示:
是否可以通过反射获取属性的私有设置器? https://stackoverflow.com/questions/9219261/is-it-possible-to-get-a-propertys-private-setter-through-reflection
但是,我有一些代码,其中有一个属性需要设置,但无法设置,因为没有设置器,我无法添加设置器,因为这不是我的代码。在这种情况下,有没有办法使用反射以某种方式设置值?
我不建议在您的应用程序上执行此操作,但出于测试目的,它可能很有用...
假设您有:
public class MyClass
{
public int MyNumber {get;}
}
如果出于测试目的,您可以这样做,我不建议在运行时代码中使用它:
var field = typeof(MyClass).GetField("<MyNumber>k__BackingField", BindingFlags.Instance | BindingFlags.NonPublic);
field.SetValue(anIstanceOfMyClass, 3);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)