4
这里是我所拥有的。查找类型给定的通用基类型和实施类型
BaseClass<T>
{
}
MyClass
{
}
NewClass : BaseClass<MyClass>
{
}
我要看看是否有与特定的通用实现的MyClass实现BaseClass的一类和获取类的类型。在这种情况下,这将是的NewClass
编辑
AppDomain.CurrentDomain.GetAssemblies().SelectMany(s => s.GetTypes()).Where(
typeof(BaseClass<>).MakeGenericType(typeof(MyClass)).IsAssignableFrom);
这将返回实现BaseClass的< MyClass的>所有类型的列表。
var baseType = typeof(BaseClass<MyClass>);
var info = types.Where(t => baseType.IsAssignableFrom(t)).FirstOrDefault();
if (info != null)
// We have some type 'info' which matches your requirements
如果:你想测试
感谢
谢谢。我正在检查typeof(BaseClass <>)并忘记添加MakeGenericType调用。 – 2010-06-01 16:23:10