Мое решение для общего использования. Получите атрибут свойства, которое вы ищете. Вернуть ноль, если не найден.
Если найдено, он возвращает сам атрибут. Таким образом, вы можете иметь доступ к свойствам внутри атрибута, если хотите.
Надеется на эту помощь.
public static Attribute GetAttribute<T>(this PropertyInfo PI, T t) where T: Type
{
var Attrs = PI.DeclaringType.GetCustomAttributes(typeof(MetadataTypeAttribute), true);
if (Attrs.Length < 1) return null;
var metaAttr = Attrs[0] as MetadataTypeAttribute;
var metaProp = metaAttr.MetadataClassType.GetProperty(PI.Name);
if (metaProp == null) return null;
Attrs = metaProp.GetCustomAttributes(t, true);
if (Attrs.Length < 1) return null;
return Attrs[0] as Attribute;
}