Heim >Backend-Entwicklung >C++ >Wie kann ich einen Eigenschaftsnamen aus einem Lambda -Ausdruck in C#abrufen?

Wie kann ich einen Eigenschaftsnamen aus einem Lambda -Ausdruck in C#abrufen?

Linda Hamilton
Linda HamiltonOriginal
2025-02-01 05:56:08953Durchsuche

How Can I Retrieve a Property Name from a Lambda Expression in C#?

extrahieren Sie den Attributnamen aus dem Lambda -Expression

Bei Verwendung des Lambda -Ausdrucks unter Verwendung des Namens des Passionsattributs kann das Abrufen des tatsächlichen Attributnamens eine Herausforderung sein. Es gibt jedoch einige Möglichkeiten, diese Informationen effektiv zu extrahieren.

Die anfängliche Implementierung umfasste den konvertierenden Lambda -Ausdruck in einen Mitgliederausdruck unter der Annahme, dass das Attribut eine Zeichenfolge ist. Dies gilt jedoch nur für die String -Attribute.

Um dieses Problem zu lösen, ist eine umfassendere Methode erforderlich, die gleichzeitig String- und Nicht -String -Attribute verarbeiten kann. Die folgende Methode liefert eine Lösung:

<code class="language-csharp">public static PropertyInfo GetPropertyInfo<TSource, TProperty>(
    TSource source,
    Expression<Func<TSource, TProperty>> propertyLambda)</code>
Diese Methode akzeptiert Quellobjekte und Lambda -Ausdrücke als Eingabe und gibt das Eigenschafts -Objekt zurück, das die Zugriffsattribute angibt. Wenn der Ausdruck das Attribut nicht zitiert, verursacht dies Abnormalitäten.

in der Implementierung der Methode:

    Es prüft, ob der Text des Lambda -Ausdrucks memberexpression ist und ob das Mitglied PropertyInfo ist. Wenn die Erkrankung nicht erfüllt ist, verursacht sie Abnormalitäten.
  1. Der Reflexionstyp des Attributs ist mit dem Quellentyp übereinstimmt oder ob es sich um eine Unterklasse des Quellentyps handelt. Wenn nicht, verursacht es Anomalien.
Mit dieser Methode können Sie das Eigenschaftsobjekt aus dem Lambda -Ausdruck sicher abrufen, um sicherzustellen, dass die Attribute der Befragten korrekt sind und im Zielobjekt existieren.

Das obige ist der detaillierte Inhalt vonWie kann ich einen Eigenschaftsnamen aus einem Lambda -Ausdruck in C#abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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