public virtual bool IsSubclassOf(IType other)
{
var external = other as ExternalType;
if (external == null)
return false;
return _type.IsSubclassOf(external._type)
|| (external.IsInterface && external._type.IsAssignableFrom(_type));
}