public virtual bool IsSubclassOf(IType other)
{
if (other.IsAssignableFrom(_array)) return true;
// Arrays also implement generic IEnumerable of their element type
if (other.ConstructedInfo != null &&
other.ConstructedInfo.GenericDefinition == _enumerable &&
other.ConstructedInfo.GenericArguments[0].IsAssignableFrom(_elementType))
{
return true;
}
return false;
}