Eine Eigenschaftsliste mit einem bestimmten Attribut abrufen
Um eine Liste öffentlicher Eigenschaften abzurufen, die ein bestimmtes Attribut besitzen, das als nicht markiert ist multiple (Attribut „AllowMultiple“ auf „false“ gesetzt), besteht ein gängiger Ansatz darin, die Eigenschaften zu durchlaufen und nach den Attributen zu suchen Präsenz.
foreach (var property in t.GetProperties()) { var attributes = property.GetCustomAttributes(typeof(MyAttribute), true); if (attributes.Length == 1) { // Property with custom attribute } }
Eine optimierte Möglichkeit, das gleiche Ergebnis zu erzielen, besteht jedoch darin, die where-Klausel von LINQ zusammen mit Attribute.IsDefined() zu verwenden, wie unten gezeigt:
var properties = t.GetProperties().Where( property => Attribute.IsDefined(property, typeof(MyAttribute)));
Diese alternative Methode umgeht die Notwendigkeit, Attributinstanzen zu erstellen, was zu einem effizienteren Ansatz führt.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient eine Liste von Eigenschaften mit einem bestimmten nicht-multiplen Attribut abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!