So finden Sie eine Objekt-Eigenschaft-Wert aus einem verschachtelten protestierte die Gruppe mit einem string als name der Eigenschaft?
Ich habe eine verschachtelte Menge von Objekten, dh einige Eigenschaften sind benutzerdefinierte Objekte. Ich würde gerne eine Objekt-Eigenschaft-Wert in der Hierarchie die Gruppe mit einem string für den Namen der Eigenschaft, und irgendeine form von "find" - Methode zur Untersuchung der Hierarchie zu finden, eine Eigenschaft, mit passenden Namen, und erhalten seinen Wert.
Ist das möglich und wenn ja wie?
Vielen Dank.
BEARBEITEN
Klassendefinition kann in pseudocode:
Class Car
Public Window myWindow()
Public Door myDoor()
Class Window
Public Shape()
Class Door
Public Material()
Car myCar = new Car()
myCar.myWindow.Shape ="Round"
myDoor.Material = "Metal"
Alle ein wenig gekünstelt, aber könnte ich "finde" den Wert des "Shape" - Eigenschaft mithilfe der magic string "- Form" eine form der find-Funktion, beginnend mit dem obersten Objekt.
ie:
string myResult = myCar.FindPropertyValue("Shape")
Hoffentlich myResult = "Round".
Dies ist, was ich bin nach.
Dank.
- versuchen Sie, mehr spezifische
- Verwenden Sie reflektion und
PropertyInfo
stackoverflow.com/questions/1355090/using-propertyinfo-getvalue - Nur ein EDIT Hinzugefügt mit Beispiel. Hat das alter der Reflexion beantworten? Der Umgang mit der Verschachtelung ist wichtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basiert auf Klassen, die Sie zeigten, in Ihrer Frage müssten Sie einen rekursiven Aufruf von iterate Ihre Objekt-Eigenschaften. Wie über etwas, das Sie wiederverwenden können:
propname
ist die Immobilie, die Sie suchen. Sie verwenden können, ist wie folgt:Ja, das ist möglich.
Zu verwenden:
sehen diese link für Ihre Referenz.