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