Heim > Backend-Entwicklung > C++ > Wie kann ich Attributinformationen aus Klasseneigenschaften unter Verwendung von Reflexion in C#abrufen?

Wie kann ich Attributinformationen aus Klasseneigenschaften unter Verwendung von Reflexion in C#abrufen?

Linda Hamilton
Freigeben: 2025-01-29 07:52:08
Original
878 Leute haben es durchsucht

How Can I Retrieve Attribute Information from Class Properties Using Reflection in C#?

Verwenden Sie die Reflexion, um auf Eigenschaftsattribute in C#

zuzugreifen

Dieser Artikel zeigt, wie Attributinformationen abgerufen werden, die mit den Reflexionsfunktionen von C#zugeordnet sind. Betrachten wir eine Book -Klasse mit einer Name -Mobilie, die mit einem benutzerdefinierten Attribut dekoriert ist. Unser Ziel ist es, sowohl den Eigenschaftsnamen als auch den Wert des Attributs (Autorenname) zu extrahieren. Author

Der Prozess umfasst die folgenden Schritte:

    Verwenden Sie
  1. , um ein Array von typeof(Book).GetProperties() Objekten zu erhalten, die die Eigenschaften der Klasse darstellen. PropertyInfo
  2. durch jedes
  3. -Objekt iterieren und PropertyInfo verwenden, um die Attribute des gewünschten Typs zu überprüfen (GetCustomAttributes() in diesem Fall). Author
  4. Wenn ein Attribut
  5. gefunden wird, rufen Sie den Namen der Eigenschaft aus Author und den Wert des Attributs aus der Attributinstanz ab. PropertyInfo
Hier ist ein C# -Codebeispiel, das dies veranschaulicht:

public class AuthorAttribute : Attribute
{
    public string Name { get; set; }
    public AuthorAttribute(string name) { Name = name; }
}

public class Book
{
    [Author("Jane Austen")]
    public string Name { get; set; }
    // ... other properties
}

public static Dictionary<string, string> GetAuthors()
{
    var authors = new Dictionary<string, string>();
    var properties = typeof(Book).GetProperties();

    foreach (var property in properties)
    {
        var attributes = property.GetCustomAttributes(true);
        foreach (var attribute in attributes)
        {
            var authorAttribute = attribute as AuthorAttribute;
            if (authorAttribute != null)
            {
                authors.Add(property.Name, authorAttribute.Name);
            }
        }
    }
    return authors;
}
Nach dem Login kopieren
Diese

-Methode gibt ein Wörterbuch zurück, bei dem Schlüssel zu Eigenschaftsnamen und Werte die entsprechenden Autorennamen aus dem Attribut GetAuthors() sind. Dies zeigt effektiv, wie die Reflexion den Zugriff auf Metadaten ermöglicht, die mit Klassenmitgliedern verbunden sind. Author

Das obige ist der detaillierte Inhalt vonWie kann ich Attributinformationen aus Klasseneigenschaften unter Verwendung von Reflexion in C#abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage