Wiem, że mogę użyć Linq do odwzorowania pól z XML na pola w istniejącym wcześniej obiekcie. Czy są jakieś funkcje w .NET Framework (lub innych bibliotekach), które sprawiają, że jest to mniej ręczne.C# - Hydratowanie istniejącego obiektu za pomocą XML
chciałbym napisać (i mieć HydrateFromXml zachowują się trochę jak AutoMapper robi):
var myObject = new MyObject(/*ctor args*/);
myObject = myObject.HydrateFromXml(string xml);
Edit:
Czy mogę użyć deseniu dekorator lub prosty wrapper obiektu tutaj? Deserializować bezpośrednio do typu, który jest opakowany przez abstrakcję, która pozwala na precyzyjne sterowanie konstrukcją, którego potrzebuję?
Zrobiłem coś podobnego markowe właściwości z atrybutami serializacji. Następnie napisz metodę, która odzwierciedla zaznaczone właściwości, a następnie kopiuj w xml dla zawartości, aby je ustawić. Mówiąc, że zakładając, że nie ma skrzyżowania między argumentami konstr. I Hydration, nie wahajcie się, jak to zrobić. Użyj serializacji, aby uzyskać, a następnie ustawić argumenty konstruktora? –
Czy mogę zapytać, co oznacza "hydrat" w tym kontekście? –
@KennethK. Myślę, że to jest sedno problemu. Chciałbym, aby właściwości na 'myObject' były inicjalizowane z odpowiednimi wartościami w XML, ale oznacza to, mówiąc programowi, jak to zrobić. Szukałem czegoś, co nie wymagało ręcznego mapowania pól, ale wygląda na to, że nie jest to możliwe. – Ben