我的项目中有一个带有派生类的泛型类。
public class GenericClass<T> : GenericInterface<T> { } public class Test : GenericClass<SomeType> { }
有没有办法找出Type对象是否源自GenericClass?
Type
GenericClass
t.IsSubclassOf(typeof(GenericClass<>))
不起作用。
试试这个代码
static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) { while (toCheck != null && toCheck != typeof(object)) { var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck; if (generic == cur) { return true; } toCheck = toCheck.BaseType; } return false; }