So che posso usare Linq per mappare campi da XML a campi in un oggetto preesistente. Ci sono delle funzioni in .NET Framework (o altre librerie) che rendono questo meno manuale.C# - Idrate l'oggetto esistente con XML
vorrei scrivere (e hanno il HydrateFromXml si comportano un po 'come automapper fa):
var myObject = new MyObject(/*ctor args*/);
myObject = myObject.HydrateFromXml(string xml);
Edit:
Potrei usare il modello decoratore o un semplice oggetto wrapper qui? Deserializza direttamente in un tipo avvolto da un'astrazione che consente il controllo della struttura a grana fine di cui ho bisogno?
Ho fatto qualcosa di simile con le proprietà di serializzazione con gli attributi di serializzazione. Quindi scrivi un metodo che rifletta le proprietà marcate e quindi scorri nel xml per il contenuto per impostarle. Dicendo che supponendo che non ci sia un crossover tra il costrutore args e l'idratazione, si tratta di rivederlo. Utilizzare la serializzazione per ottenerne una quindi impostare le arguemnts del costruttore? –
Posso chiedere cosa significa "idratare" in questo contesto? –
@KennethK. Penso che questo sia il punto cruciale del problema. Vorrei che le proprietà su 'myObject' inizializzassero con i valori corrispondenti nell'XML, ma farlo significa dire al programma come farlo. Stavo cercando qualcosa che non coinvolgesse manualmente i campi di mappatura, ma sembra che questo non sia possibile. – Ben