Есть ли способ создать общий класс из параметра типа.
У меня есть что-то вроде этого.:
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>();
}
}
Я хочу создать GenericClass из Type. Пример:
var SC = new SomeClass();
SC.TypeOfAnotherClass = typeof(OneMoreClass);
var generic = GenericClass.GetInstance(SC.TypeOfAnotherClass);
Assert.AreEqual(typeof(GenericClass<OneMoreClass>), generic.GetType());
Здесь я ожидаю получить экземпляр GenericClass<OneMoreClass>
, но получаю GenericClass<Type>
. Я также пытался использовать экземпляр этого типа. Пример:
var generic = GenericClass.GetInstance(Activator.CreateInstance(SC.TypeOfAnotherClass));
На этот раз я получаюGenericClass<object>
Есть ли способ выполнить эту задачу?