Wie lese ich zur Laufzeit ein Attribut einer Klasse?
Ich versuche, erstellen Sie eine generische Methode zum Lesen eines Attributs auf eine Klasse und zurück, die den Wert zur Laufzeit. Wie kann ich dies tun?
Hinweis: DomainName Attribut der Klasse DomainNameAttribute.
[DomainName("MyTable")]
Public class MyClass : DomainBase
{}
Was ich versuche zu generieren:
//This should return "MyTable"
String DomainNameValue = GetDomainName<MyClass>();
InformationsquelleAutor der Frage Zaffiro | 2010-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
UPDATE:
Diese Methode könnte weiter verallgemeinert, um mit jedem beliebigen Attribut:
und verwenden, wie diese:
InformationsquelleAutor der Antwort Darin Dimitrov
Gibt es bereits eine Erweiterung, dies zu tun.
Also:
InformationsquelleAutor der Antwort Darrel Lee
InformationsquelleAutor der Antwort Merritt
Ich verwendet Darin dimitrovs Antwort zu erstellen, eine generische Erweiterung zu get member-Attribute für jedes Element in einer Klasse (anstelle von Attribute für eine Klasse). Ich bin Entsendung es hier, denn andere finden es vielleicht nützlich:
Beispiel:
InformationsquelleAutor der Antwort Sevin7
Hier ist ein gutes tutorial, wenn du es noch nicht gesehen haben, bevor http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx
Insbesondere die für Sie von Interesse ist der Abschnitt, der hier, genannten den Zugriff auf das Attribut
http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx#vcwlkattributestutorialanchor3
InformationsquelleAutor der Antwort Driss Zouak
Eine vereinfachte version der Darin Dimitrov die erste Lösung:
InformationsquelleAutor der Antwort jk7
Wahrscheinlich genauso leicht um den Körper zu verwenden der generischen Funktion inline.
Es macht keinen Sinn für mich zu machen die Funktion generisch über den Typ MyClass.
InformationsquelleAutor der Antwort Darrel Lee