Klasa ogólna z parametru typu
Czy istnieje sposób na utworzenie klasy ogólnej z parametru type.
Mam coś takiego:
<code>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>(); } } </code>
Chcę utworzyć GenericClass z typu. Dawny:
<code>var SC = new SomeClass(); SC.TypeOfAnotherClass = typeof(OneMoreClass); var generic = GenericClass.GetInstance(SC.TypeOfAnotherClass); Assert.AreEqual(typeof(GenericClass<OneMoreClass>), generic.GetType()); </code>
Tutaj spodziewam się uzyskać wystąpienieGenericClass<OneMoreClass>
ale dostajęGenericClass<Type>
Próbowałem również użyć instancji tego typu. Dawny:
<code>var generic = GenericClass.GetInstance(Activator.CreateInstance(SC.TypeOfAnotherClass)); </code>
Tym razem dostanęGenericClass<object>
Czy istnieje sposób na wykonanie tego zadania?