毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

C# 反射如何取自定义类型的List<>列表的 Type 类型

更新时间:2013-4-30:  来源:毕业论文

C# 反射如何取自定义类型的List<>列表的 Type 类型

代码如下:

Assembly asmPlugIn = Assembly.LoadFrom(strPlugInPath);

string strtype = "userInfo";

//这里可以取到自定义类型(自己声明的类userInfo)的Type
Type itemType = asmPlugIn.GetType(strType);


//用这种方法取到的值为 null (这里要取的是list<userInfo> 列表)
Type valueType = asmPlugIn.GetType(string.Format("System.Collections.Generic.List`1[[{0},{1}]]"
                                    , itemType.Name, asmPlugIn.FullName));
//用这种方法取到的值也为 null
Type valueType2 = Type.GetType(string.Format("System.Collections.Generic.List`1[[{0},{1}]]"
                                   , itemType.Name, asmPlugIn.FullName));

都知道是 List<UserInfo> 了,还反射什么呢?项目可行性研究报告 

typeof(List<UserInfo>) 不行吗?

Type valueType2 = Type.GetType(string.Format("System.Collections.Generic.List`1[[{0},{1}]]", itemType.Name, asmPlugIn.FullName));

没有加命名空间吧。

itemType.Name 改为 itemType.FullName

  public static object CreateGeneric(Type generic, Type innerType, params object[] args)         {             Type specificType = generic.MakeGenericType(new System.Type[] { innerType });             return Activator.CreateInstance(specificType, args);         }         object genericList = CreateGeneric(typeof(List<>), typeof(EC));

  public static object CreateGeneric(Type generic, Type innerType, params object[] args)         {             Type specificType = generic.MakeGenericType(new System.Type[] { innerType });             return Activator.CreateInstance(specificType, args);         }         object genericList = CgenericList.GetType().InvokeMember("Add", BindingFlags.Default | BindingFlags.InvokeMethod, null, genericList, new object[] { o1,o2,o3 });
这样就添加进去啦 eateGeneric(typeof(List<>), typeof(EC));

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。