Überschriebenes Eigenschaftsattribut abrufen

Ich habe ein benutzerdefiniertes Attribut wie das folgende:

public class PropertyInfoAttribute : Attribute
{
    public bool IsAutoComplete { get; set; }
}

Und es gibt eine Klasse wie diese:

public class Article
{
    public virtual int Order { get; set; }
    //other properties
}

In einer anderen Klasse, die von Article erbt, überschreibe ich die Order-Eigenschaft und deklariere das Attribut folgendermaßen:

public class ArticleDetails : Article
{
    [PropertyInfo(IsAutoCompele = true)]
    public override int Order { get; set; }
}

Das Problem tritt auf, wenn ich Attribute mithilfe der GetCustomAttributes-Methode in der PropertyInfo-Klasse abrufen möchte. So mach ich es:

PropertyInfo propInfo = //do something for getting property info from the
                        //ArticleDetails class;

var attr = propInfo.GetCustomAttribute<PropertyInfoAttribute>();

Aber es gibt nichts zurück! Ich weiß nicht warum!

AKTUALISIEREN:

Ich erhalte Eigenschaftsinformationen in dieser Methode:

    public static void InitPropertyInfoAttribute<TModel, TProperty>(MvcHtmlString source, Expression<Func<TModel, TProperty>> expression)
    {
        PropertyInfo propInfo = (expression.Body as MemberExpression).Member as PropertyInfo;
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage