【发布时间】:2015-06-10 04:26:14
【问题描述】:
我在 C# 中有一个泛型类,它有 2 种数据类型 public class ResolvedChainSubscriber < K, V>,现在我必须创建这个类的一个实例,但是其中一个参数的数据类型只有在运行时才能知道。我将其存储为Type Prototype。
public static Object SubsciberTopic(Type ProtoType)
{
Type[] type={Type.GetType("System.String"),ProtoType};
Type resolve = typeof(ResolvedChainSubscriber <,>).MakeGenericType(type);
Object obj1=Activator.CreateInstance(resolve);
}
但是,我得到了例外
MissingMethodException:没有为此对象定义无参数构造函数
请注意,ResolvedChainSubscriber 类是一个引用类。因此我无法对其进行编辑以添加函数或构造函数
【问题讨论】:
-
你问的是动态数据类型吗?
-
嗯,我是说第二个数据类型的类型,也就是“V”,只有在运行时才能知道......并且它存储在 ProtoType 中
-
这里的问题似乎与类型解析无关,这应该在泛型的编译时发生,否则你需要反射来解析类型,检查我在下面发布的链接,如果他们帮助
标签: c# class generics reflection