Obter atributo de propriedade substituída
Eu tenho um atributo personalizado como este:
public class PropertyInfoAttribute : Attribute
{
public bool IsAutoComplete { get; set; }
}
E há uma classe como esta:
public class Article
{
public virtual int Order { get; set; }
//other properties
}
Em outra classe, que herda de Article, eu substituo a propriedade Order e declaro o atributo da seguinte maneira:
public class ArticleDetails : Article
{
[PropertyInfo(IsAutoCompele = true)]
public override int Order { get; set; }
}
O problema aparece quando eu quero obter atributos usando o método GetCustomAttributes na classe PropertyInfo. Eu faço assim:
PropertyInfo propInfo = //do something for getting property info from the
//ArticleDetails class;
var attr = propInfo.GetCustomAttribute<PropertyInfoAttribute>();
Mas isso não retorna nada! Não sei porque!
ATUALIZAR:
Eu recebo informações de propriedade neste método:
public static void InitPropertyInfoAttribute<TModel, TProperty>(MvcHtmlString source, Expression<Func<TModel, TProperty>> expression)
{
PropertyInfo propInfo = (expression.Body as MemberExpression).Member as PropertyInfo;
}