给出一个泛型类型约束的所有可能的排列:反映了泛型类型约束
class MyClass<T> where T: Alpha
{
}
和约束的实现:
class Alpha {}
class Bravo : Alpha {}
class Charlie : Alpha {}
怎样才能获得泛型类型的全部组合中的运行?
// I want these types at run-time
MyClass<Alpha>
MyClass<Bravo>
MyClass<Charlie>
编辑:基于@ rich.okelly的答案,我认为真正的问题是:
我怎样才能找到所有实现在运行时我一般类型的约束的类型?
所以如果我给typeof(MyClass<>)
,我会得到上面的类型。
想法,如果你给出的只是'MyClass'类型? –
已更新,因此运行时类型的alpha不是必需的。 –
@AustinSalonen回答现在更新完成解决方案(假设所有必需的程序集已加载)。 –