Heim >Backend-Entwicklung >C++ >Wie kann ich Eigenschaftswerte in .NET mithilfe von Reflection dynamisch abrufen?

Wie kann ich Eigenschaftswerte in .NET mithilfe von Reflection dynamisch abrufen?

DDD
DDDOriginal
2025-01-06 16:51:42923Durchsuche

How Can I Dynamically Retrieve Property Values in .NET Using Reflection?

Eigenschaftswerte dynamisch mithilfe des Eigenschaftsnamens abrufen

Der programmgesteuerte Zugriff auf Eigenschaftswerte kann in verschiedenen Szenarien nützlich sein, beispielsweise bei der dynamischen Objektmanipulation oder der Datenserialisierung . In .NET können Sie dies mithilfe von Reflektion erreichen.

Um den Wert einer Eigenschaft basierend auf ihrem Namen abzurufen, können Sie die GetProperty-Methode der Type-Klasse verwenden. Es verwendet den Eigenschaftsnamen als Parameter und gibt ein PropertyInfo-Objekt zurück. Dieses Objekt stellt die angegebene Eigenschaft dar und ermöglicht Ihnen die Manipulation ihres Verhaltens und ihrer Daten.

Um den Eigenschaftswert zu erhalten, können Sie die GetValue-Methode des PropertyInfo-Objekts aufrufen. Diese Methode verwendet das Objekt, von dem der Wert abgerufen werden soll, und ein Array optionaler Indexwerte (das für nicht indizierte Eigenschaften normalerweise null ist).

Hier ist ein Beispiel, das zeigt, wie eine Methode geschrieben wird, die Eigenschaftswerte abruft Name:

public string GetPropertyValue(object obj, string propertyName)
{
    var property = obj.GetType().GetProperty(propertyName);
    return (string)property.GetValue(obj, null);
}

In der angegebenen Beispielklasse können Sie diese Methode wie folgt aufrufen:

var car = new Car { Make="Ford" };
var make = GetPropertyValue(car, "Make");

Dadurch wird der Wert der Make-Eigenschaft zugewiesen (Ford) zur Make-Variable. Beachten Sie, dass der Eigenschaftswert als Objekt zurückgegeben wird und möglicherweise in den entsprechenden Typ umgewandelt werden muss.

Das obige ist der detaillierte Inhalt vonWie kann ich Eigenschaftswerte in .NET mithilfe von Reflection dynamisch 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