我試圖通過反射向IList添加項目,但在調用「添加」方法時拋出錯誤「對象參考未設置」。在調試的時候,我開始知道GetMethod(「Add」)返回一個NULL引用。使用反射將項目添加到列表<T>
Type objTyp = typeof(MyObject); //HardCoded TypeName for demo purpose
var IListRef = typeof (List<>);
Type[] IListParam = {objTyp};
object Result = IListRef.MakeGenericType(IListParam);
MyObject objTemp = new MyObject();
Result.GetType().GetMethod("Add").Invoke(Result, new[] {objTemp });
請大家幫忙。
前段時間我用了很多反射工作,得出的結論是我不喜歡'GetMethod(string)'的重載,因爲我從來不知道它是否會返回。嘗試使用'GetMethod(string,Type [])'或'GetMethod(string,BindingFlags)'。可能沒有成功,也可能只是我偏執狂,但我記得之前對類似問題有很多困惑。 – Alxandr 2010-11-16 12:22:43