c# – 使用Type对象创建泛型
发布时间:2020-12-15 04:31:43 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Type对象创建泛型类的实例. 基本上,我会在运行时拥有不同类型的对象集合,因为无法确定知道它们究竟属于哪种类型,我想我将不得不使用Reflection. 我正在做的事情如下: Type elType = Type.GetType(obj);Type genType = typeof(GenericType).Ma
我正在尝试使用Type对象创建泛型类的实例.
基本上,我会在运行时拥有不同类型的对象集合,因为无法确定知道它们究竟属于哪种类型,我想我将不得不使用Reflection. 我正在做的事情如下: Type elType = Type.GetType(obj); Type genType = typeof(GenericType<>).MakeGenericType(elType); object obj = Activator.CreateInstance(genType); 哪个好,好. ^ ___ ^ 问题是,我想访问我的GenericType<>的方法.实例,我不能,因为它被键入为对象类.我找不到将obj转换为特定的GenericType<>的方法,因为这首先是问题(即,我不能放入像:)这样的东西 ((GenericType<elType>)obj).MyMethod(); 应该怎样解决这个问题? 非常感谢! ^ ___ ^ 解决方法
您必须继续使用Reflection来调用实际方法:
// Your code Type elType = Type.GetType(obj); Type genType = typeof(GenericType<>).MakeGenericType(elType); object obj = Activator.CreateInstance(genType); // To execute the method MethodInfo method = genType.GetMethod("MyMethod",BindingFlags.Instance | BindingFlags.Public); method.Invoke(obj,null); 有关更多信息,请参阅Type.GetMethod和MethodBase.Invoke. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |