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;
    }

questionAnswers(2)

yourAnswerToTheQuestion