我知道这不起作用,但有没有人有办法使它工作?
object obj = new object();
MyType typObj = new MyType();
obj = typObj;
Type objType = typObj.GetType();
List<objType> list = new List<objType>();
list.add((objType) obj);
Run Code Online (Sandbox Code Playgroud)
编辑:
这是当前的代码:http://github.com/vimae/Nisme/blob/4aa18943214a7fd4ec6585384d167b10f0f81029/Lala.API/XmlParser.cs
我试图简化的方法是SingleNodeCollection
正如您所看到的,它目前使用了如此混乱的反射方法.
Jef*_*ser 10
看来你错过了一个明显的解决方案:
object obj = new object();
MyType typObj = new MyType();
obj = typObj;
List<MyType> list = new List<MyType>();
list.Add((MyType) obj);
Run Code Online (Sandbox Code Playgroud)
如果你真的需要动态路线,那么你可以这样做:
object obj = new object();
MyType typObj = new MyType();
obj = typObj;
Type objType = typObj.GetType();
Type listType = typeof(List<>);
Type creatableList = listType.MakeGenericType(objType);
object list = Activator.CreateInstance(creatableList);
MethodInfo mi = creatableList.GetMethod("Add");
mi.Invoke(list, new object[] {obj});
Run Code Online (Sandbox Code Playgroud)