我想创建一个单元测试来测试一个特定的边界情况,并且我正在使用Reflection来获得一个类的私有属性。C#反射SetValue
虽然我可以用
var getPrivateProperty = obj.GetType().GetProperty("somename", BindingFlags.Instance | BindingFlags.NonPublic);
getPrivateProperty.SetValue(obj, newValue, null);
我的问题是,该属性设置在类为空,然后设置为对象的方法的实例。在我具体的测试,我需要这个属性设置为对象的实例,但我仍然得到不设置到对象”的实例
对象的臭名昭著的错误,我已经试过这样:
getPrivateProperty.SetValue(obj, new List<string>() {item, item2}, null);
有没有一种方法来设置属性为一个对象的实例,以完成我的测试?
标记属性内部并使用['InternalsVisibleToAttribute'](https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute。 aspx)与您的测试项目。 – Romoku
找出什么是空的,不要给它一个null。 –
你可以发布一个[mcve]包括你正在反思的类吗?调试反射问题很困难,不知道你在做什么。 –