有没有办法从类型参数创建泛型类.
我有这样的事情:
public class SomeClass
{
public Type TypeOfAnotherClass { get; set; }
}
public class OneMoreClass
{
}
public class GenericClass<T>
where T : class
{
public void DoNothing() {}
}
public class GenericClass
{
public static GenericClass<T> GetInstance<T>(T ignored)
where T : class
{
return new GenericClass<T>();
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是从Type创建GenericClass.例如:
var SC = new SomeClass();
SC.TypeOfAnotherClass = typeof(OneMoreClass);
var generic = GenericClass.GetInstance(SC.TypeOfAnotherClass);
Assert.AreEqual(typeof(GenericClass<OneMoreClass>), generic.GetType());
Run Code Online (Sandbox Code Playgroud)
在这里,我希望获得实例,GenericClass<OneMoreClass>但我得到了GenericClass<Type>
我也尝试过使用那种类型的实例.例如:
var generic = GenericClass.GetInstance(Activator.CreateInstance(SC.TypeOfAnotherClass));
Run Code Online (Sandbox Code Playgroud)
这次我得到了 GenericClass<object>
有没有办法完成这项任务?