Ich habe gerade ein Nuget-Paket veröffentlicht, mit dem nicht nur die Eigenschaften der ersten Ebene, sondern auch verschachtelte Eigenschaften im angegebenen Objekt in beliebiger Tiefe eingerichtet werden können.
Hier ist das Paket
Legt den Wert einer Eigenschaft eines Objekts anhand seines Pfads vom Stamm fest.
Das Objekt kann ein komplexes Objekt sein und die Eigenschaft kann eine tief verschachtelte Eigenschaft mit mehreren Ebenen sein oder es kann eine Eigenschaft direkt unter dem Stamm sein. ObjectWriter
findet die Eigenschaft mithilfe des Eigenschaftspfadparameters und aktualisiert ihren Wert. Der Eigenschaftspfad sind die angehängten Namen der Eigenschaften, die vom Stamm bis zur Endknoteneigenschaft besucht werden, die wir festlegen möchten, getrennt durch den Trennzeichenfolgenparameter.
Verwendungszweck:
So richten Sie die Eigenschaften direkt unter dem Objektstamm ein:
Dh. LineItem
Klasse hat eine int-Eigenschaft namensItemId
LineItem lineItem = new LineItem();
ObjectWriter.Set(lineItem, "ItemId", 13, delimiter: null);
Zum Einrichten verschachtelter Eigenschaften auf mehreren Ebenen unterhalb des Objektstamms:
Dh. Invite
Klasse hat eine Eigenschaft namens State
, die eine Eigenschaft namens hatInvite
(vom Typ Invite) hat, die eine Eigenschaft namens hat Recipient
, die eine Eigenschaft namens hatId
.
Um die Dinge noch komplexer zu machen, ist die State
Eigenschaft kein Referenztyp, sondern ein struct
.
So können Sie die Id-Eigenschaft (auf den Zeichenfolgenwert von "Outlook") am unteren Rand des Objektbaums in einer einzelnen Zeile festlegen.
Invite invite = new Invite();
ObjectWriter.Set(invite, "State_Invite_Recipient_Id", "outlook", delimiter: "_");
var val = Convert.ChangeType(propValue, propInfo.PropertyType);
source: devx.com/vb2themax/Tip/19599