Gibt es eine Möglichkeit, den Wert einer Eigenschaft eines Objekts anhand seines Namens zu ermitteln?
Zum Beispiel, wenn ich habe:
public class Car : Vehicle
{
public string Make { get; set; }
}
und
var car = new Car { Make="Ford" };
Ich möchte eine Methode schreiben, bei der ich den Eigenschaftsnamen übergeben kann und die den Eigenschaftswert zurückgibt. dh:
public string GetPropertyValue(string propertyName)
{
return the value of the property;
}
c#
asp.net
reflection
Codierer 2
quelle
quelle
Sie müssten Reflexion verwenden
Wenn Sie wirklich ausgefallen sein möchten, können Sie es zu einer Erweiterungsmethode machen:
Und dann:
quelle
car
Du willst Reflexion
quelle
Einfaches Beispiel (ohne Schreibreflexions-Hardcode im Client)
quelle
Darüber hinaus antworten andere Leute: Es ist einfach, den Eigenschaftswert eines Objekts mithilfe der Erweiterungsmethode zu ermitteln, z. B.:
Verwendung ist:
quelle
Erweitern Sie die Antwort von Adam Rackis - wir können die Erweiterungsmethode einfach so generisch gestalten:
Wenn Sie möchten, können Sie auch Fehler behandeln.
quelle
Um Reflexionen zu vermeiden, können Sie ein Wörterbuch mit Ihren Eigenschaftsnamen als Schlüssel und Funktionen im Wörterbuchwertteil einrichten, die die entsprechenden Werte aus den von Ihnen angeforderten Eigenschaften zurückgeben.
quelle