【发布时间】:2011-12-04 16:14:16
【问题描述】:
我想为泛型类创建一个使用反射的类。
谁能告诉我如何创建它?
我有
public class SomeClass<T>
{
....
}
我需要使用反射为SomeClass<T> 创建一个类。
【问题讨论】:
标签: reflection constructor c#-2.0
我想为泛型类创建一个使用反射的类。
谁能告诉我如何创建它?
我有
public class SomeClass<T>
{
....
}
我需要使用反射为SomeClass<T> 创建一个类。
【问题讨论】:
标签: reflection constructor c#-2.0
使用MakeGenericType方法:
Type myParameterizedSomeClass = typeof(SomeClass<>).MakeGenericType(typeof(MyParameter));
ConstructorInfo constr = myParameterizedSomeClass.GetConstructor(typeof(ConstrParamType1),typeof(ConstrParamType2));
【讨论】:
您是否需要在运行时使用创建新类的反射来实例化现有类? 如果是前者:
Class<?> c = Class.forName("SomeClass");
SomeClass<String> sc = (SomeClass<String>)c.newInstance();
如果是后者,请查看Javassist。没试过,但看起来很容易使用。 我假设您使用的是 Java。
【讨论】: