Nutzung von C# Reflexion, um auf Eigenschaftswerte aus Zeichenfolgen zuzugreifen
Reflexion in C# bietet eine dynamische Möglichkeit, zur Laufzeit mit Objekten zu interagieren. Eine gemeinsame Anwendung ist das Abrufen von Eigenschaftswerten, wenn Sie ihre Namen nur als Zeichenfolgen haben.
Diese Technik ist besonders nützlich, wenn es sich um dynamische Daten oder Konfigurationen handelt, bei denen Eigenschaftennamen zum Kompilierzeit nicht bekannt sind.
Verwenden Sie Type.GetProperty()
und GetValue()
Der Kern dieses Ansatzes liegt in den Methoden Type.GetProperty()
und GetValue()
. Hier ist eine kurze Funktion, die dies zeigt:
public static object GetPropertyValue(object obj, string propertyName) { Type type = obj.GetType(); PropertyInfo property = type.GetProperty(propertyName); return property?.GetValue(obj); }
Diese Funktion nimmt ein Objekt und einen Eigenschaftsnamen (als Zeichenfolge) und gibt den Wert der Eigenschaft zurück. Der Null-Conditional Operator (?.
) behandelt Fälle, in denen die Eigenschaft nicht existiert, und verhindert Ausnahmen.
Praktisches Beispiel
veranschaulichen wir seine Verwendung:
public class MyClass { public string MyProperty { get; set; } } // ... later in your code ... string className = "MyClass"; string propertyName = "MyProperty"; object instance = Activator.CreateInstance(Type.GetType(className)); object propertyValue = GetPropertyValue(instance, propertyName);
Dieses Beispiel erstellt dynamisch eine Instanz von MyClass
und ruft den Wert von MyProperty
mit der GetPropertyValue
-Funktion ab. Dies beseitigt die Notwendigkeit für den Zugriff auf festkodierende Eigenschaften und verbessert die Code -Flexibilität.
Das obige ist der detaillierte Inhalt vonWie kann Reflexion Eigenschaftenwerte von Zeichenfolgen in C#abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!