internal static bool IsDefined(ICustomAttributeProvider obj, Type attributeType, bool inherit)
{
if (attributeType == null)
{
throw new ArgumentNullException("attributeType");
}
if (MonoCustomAttrs.IsUserCattrProvider(obj))
{
return(obj.IsDefined(attributeType, inherit));
}
if (MonoCustomAttrs.IsDefinedInternal(obj, attributeType))
{
return(true);
}
object[] pseudoCustomAttributes = MonoCustomAttrs.GetPseudoCustomAttributes(obj, attributeType);
if (pseudoCustomAttributes != null)
{
for (int i = 0; i < pseudoCustomAttributes.Length; i++)
{
if (attributeType.IsAssignableFrom(pseudoCustomAttributes[i].GetType()))
{
return(true);
}
}
}
ICustomAttributeProvider @base;
return(inherit && (@base = MonoCustomAttrs.GetBase(obj)) != null && MonoCustomAttrs.IsDefined(@base, attributeType, inherit));
}