我试图通过反射向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