public override bool IsAssignableFrom (Type c)
{
if (c == this)
return true;
Type[] interfaces = GetInterfacesInternal ();
if (c.IsInterface) {
if (interfaces == null)
return false;
foreach (Type t in interfaces)
if (c.IsAssignableFrom (t))
return true;
return false;
}
Type parent = GetParentType ();
if (parent == null)
return c == typeof (object);
else
return c.IsAssignableFrom (parent);
}