Uzyskaj przesłonięty atrybut właściwości
Mam taki atrybut:
public class PropertyInfoAttribute : Attribute
{
public bool IsAutoComplete { get; set; }
}
I jest taka klasa:
public class Article
{
public virtual int Order { get; set; }
//other properties
}
W innej klasie, która dziedziczy z artykułu, nadpisuję właściwość Order i deklaruję jej atrybut w następujący sposób:
public class ArticleDetails : Article
{
[PropertyInfo(IsAutoCompele = true)]
public override int Order { get; set; }
}
Problem pojawia się, gdy chcę uzyskać atrybuty za pomocą metody GetCustomAttributes w klasie PropertyInfo. Robię to w ten sposób:
PropertyInfo propInfo = //do something for getting property info from the
//ArticleDetails class;
var attr = propInfo.GetCustomAttribute<PropertyInfoAttribute>();
Ale nic nie zwraca! Nie wiem dlaczego!
AKTUALIZACJA:
W tej metodzie otrzymuję informacje o właściwościach:
public static void InitPropertyInfoAttribute<TModel, TProperty>(MvcHtmlString source, Expression<Func<TModel, TProperty>> expression)
{
PropertyInfo propInfo = (expression.Body as MemberExpression).Member as PropertyInfo;
}