我想創建一個單元測試來測試一個特定的邊界情況,並且我正在使用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]包括你正在反思的類嗎?調試反射問題很困難,不知道你在做什麼。 –