2017-05-12 3 views
2

Ich kann eine einfache Textliste aller Eigenschaftsnamen in einer angegebenen Klasse mit dem folgenden Code abrufen.Name des Datenattribut-Displays aus der C# -Klasse extrahieren?

Aber ich war nicht in der Lage, herauszufinden, wie Sie den Anzeigenamen für jedes Feld erhalten. Der Anzeigename wird mit dem Datenattribut angegeben:

[Display(Name = "First Name")] 
public string FirstName { get; set; } 

Gibt es eine Möglichkeit, Reflektionen zu verwenden? Oder eine andere Art, es programmatisch zu machen?

+1

Ich denke, (weiß) ist auch ein Weg zu reflektieren auf den Attributen. Versuchen Sie GetCustomAttributes() –

Antwort

4

Sie CustomAttribute nach Typ auf diese Weise erhalten können:

DisplayAttribute attribute = (DisplayAttribute)item.GetCustomAttribute(typeof(DisplayAttribute)); 

Jetzt können Sie einen beliebigen Wert von DisplayAttribute Felder erhalten nur beispielsweise mit

attributes.Name