public bool IsSubclassOf(IType other)
{
if (BaseType != null && (BaseType == other || BaseType.IsSubclassOf(other)))
{
return true;
}
if (other.IsInterface && Array.Exists(
GetInterfaces(),
delegate(IType i) { return other.IsAssignableFrom(i); }))
{
return true;
}
return false;
}