Ich habe gerade ein Nuget-Paket veröffentlicht, mit dem nicht nur die Eigenschaften der ersten Ebene, sondern auch verschachtelte Eigenschaften in einem bestimmten Objekt in beliebiger Tiefe eingerichtet werden können.
Hier ist das Paket
Legt den Wert einer Eigenschaft eines Objekts anhand seines Pfads von der Wurzel fest.
Das Objekt kann ein komplexes Objekt sein, und die Eigenschaft kann auf mehreren Ebenen tief verschachtelt sein, oder sie kann eine Eigenschaft direkt unter der Wurzel sein. ObjectWriter
findet die Eigenschaft anhand des Parameters für den Eigenschaftspfad und aktualisiert ihren Wert. Der Eigenschaftspfad ist der angehängte Name der Eigenschaften, die von der Wurzel bis zur Eigenschaft des Endknotens, die wir einstellen wollen, besucht werden, begrenzt durch den Parameter "delimiter string".
Verwendung:
Zum Einstellen der Eigenschaften direkt unter dem Objekt Root:
D.h.. LineItem
Klasse hat eine int-Eigenschaft namens ItemId
LineItem lineItem = new LineItem();
ObjectWriter.Set(lineItem, "ItemId", 13, delimiter: null);
Zum Einrichten verschachtelter Eigenschaften auf mehreren Ebenen unterhalb des Objekts Root:
D.h.. Invite
Klasse hat eine Eigenschaft namens State
die eine Eigenschaft namens Invite
(vom Typ Invite), die eine Eigenschaft namens Recipient
die eine Eigenschaft namens Id
.
Um die Dinge noch komplizierter zu machen, ist die State
Eigenschaft ist kein Referenztyp, sie ist eine struct
.
Hier sehen Sie, wie Sie die Id-Eigenschaft (mit dem String-Wert "outlook") am unteren Ende des Objektbaums in einer einzigen Zeile festlegen können.
Invite invite = new Invite();
ObjectWriter.Set(invite, "State_Invite_Recipient_Id", "outlook", delimiter: "_");