public static TAttribute FirstAttribute <TAttribute>(this PropertyInfo propertyInfo) { var attr = AttributeX.FirstAttribute(propertyInfo, typeof(TAttribute), true); return(attr != null ? (TAttribute)(object)attr : default(TAttribute)); //return propertyInfo.AllAttributes<TAttribute>().FirstOrDefault(); }
public static TAttr FirstAttribute <TAttr>(this Type type) where TAttr : class { var attr = AttributeX.FirstAttribute(type, typeof(TAttr), true); return(attr != null ? (TAttr)(object)attr : default(TAttr)); //return (TAttr)type.GetCustomAttributes(typeof(TAttr), true) // .FirstOrDefault() // ?? type.GetRuntimeAttributes<TAttr>().FirstOrDefault(); }