当前位置:  开发笔记 > 编程语言 > 正文

C#中的动态类型

如何解决《C#中的动态类型》经验,为你挑选了1个好方法。

我知道这不起作用,但有没有人有办法使它工作?

object obj = new object();
MyType typObj = new MyType();
obj = typObj;
Type objType = typObj.GetType();
List list = new List();
list.add((objType) obj);

编辑:

这是当前的代码:http://github.com/vimae/Nisme/blob/4aa18943214a7fd4ec6585384d167b10f0f81029/Lala.API/XmlParser.cs

我试图简化的方法是SingleNodeCollection

正如您所看到的,它目前使用了如此混乱的反射方法.



1> Jeff Moser..:

看来你错过了一个明显的解决方案:

object obj = new object();
MyType typObj = new MyType();
obj = typObj;
List list = new List();
list.Add((MyType) obj);

如果你真的需要动态路线,那么你可以这样做:

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});

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有