You're trying to find an Add
method in Type
, not in List<MyObject>
- and then you're trying to invoke it on a Type
.
MakeGenericType
returns a type, not an instance of that type. If you want to create an instance, Activator.CreateInstance
is usually the way to go. Try this:
Type objTyp = typeof(MyObject); //HardCoded TypeName for demo purpose
var IListRef = typeof (List<>);
Type[] IListParam = {objTyp};
object Result = Activator.CreateInstance(IListRef.MakeGenericType(IListParam));
MyObject objTemp = new MyObject();
Result.GetType().GetMethod("Add").Invoke(Result, new[] {objTemp });
(I would also suggest that you start following conventions for variable names, but that's a separate matter.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…