ジェネリック型がクラスであり、他の関連する継承されたクラスであるジェネリック基本クラスがあります。
public class BaseClass<T> where T : class
{
virtual void DoWork(){..}
virtual void DoAnotherWork(){..}
}
public class SomeInherit<Person> : BaseClass<Person>
{
//...
}
public class OtherInherit<Car> : BaseClass<Car>
{
// override something..
}
次に、リフレクションを介して同僚から継承された BaseClass をロードできるようにする BaseClassManager があります。
public class BaseClassManager
{
public BaseClass<TItem> LoadBaseClass<T>() where T : BaseClass<???>
{
// how can create an instance of T?
// TItem : class
// T : BaseClass
// -------------> in reality, it should be: T<TItem> (just as BaseClass<Person>)
}
}
それを達成する方法はありますか..?