Heim > Backend-Entwicklung > C++ > Wie kann ich öffentliche Eigenschaften mit einem bestimmten benutzerdefinierten Attribut in C# effizient finden?

Wie kann ich öffentliche Eigenschaften mit einem bestimmten benutzerdefinierten Attribut in C# effizient finden?

DDD
Freigeben: 2025-01-05 02:37:38
Original
976 Leute haben es durchsucht

How Can I Efficiently Find Public Properties with a Specific Custom Attribute in C#?

Eigenschaften mit spezifischen Attributen mithilfe von Reflection finden

Benutzerdefinierte Attribute sind ein leistungsstarkes Tool zum Kommentieren von Typen und Mitgliedern in .NET-Code. Manchmal ist es erforderlich, Informationen zu diesen Attributen programmgesteuert abzurufen. Diese Frage konzentriert sich auf das Abrufen einer Liste öffentlicher Eigenschaften, die mit einem bestimmten benutzerdefinierten Attribut namens „MyAttribute“ versehen sind, dessen AllowMultiple-Eigenschaft auf „false“ gesetzt ist.

Der bereitgestellte Code verwendet eine Schleife, um die Eigenschaften des Typs zu durchlaufen und prüft mithilfe von GetCustomAttributes() das Vorhandensein des benutzerdefinierten Attributs. Obwohl dieser Ansatz funktional ist, beinhaltet er die Materialisierung von Attributinstanzen, was mit Leistungseinbußen verbunden ist.

Ein effizienterer Ansatz ist die Verwendung der Where()-Erweiterungsmethode für die GetProperties()-Sammlung, wie im Folgenden gezeigt Antwort:

var props = t.GetProperties().Where(
    prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
Nach dem Login kopieren

Dieser Code nutzt die Methode Attribute.IsDefined(), die das Vorhandensein eines bestimmten Attributtyps auf einem Mitglied prüft, ohne Attributinstanzen zu erstellen. Der Lambda-Ausdruck stellt sicher, dass nur Eigenschaften mit dem MyAttribute in der Props-Variablen ausgewählt werden.

Durch die Verwendung dieses Ansatzes wird der mit der Materialisierung von Attributinstanzen verbundene Mehraufwand vermieden, was zu einer leichteren und leistungsfähigeren Lösung führt.

Das obige ist der detaillierte Inhalt vonWie kann ich öffentliche Eigenschaften mit einem bestimmten benutzerdefinierten Attribut in C# effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage