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