Ich weiß, dass ich Linq verwenden kann, um Felder aus XML Feldern in einem bereits bestehenden Objekt zuzuordnen. Gibt es Funktionen in .NET Framework (oder anderen Bibliotheken), die dies weniger manuell machen?C# - Hydrate existierendes Objekt mit XML
würde ich schreiben (und haben die HydrateFromXml ein wenig verhalten sich wie AutoMapper tut):
var myObject = new MyObject(/*ctor args*/);
myObject = myObject.HydrateFromXml(string xml);
Edit:
Könnte ich das Decorator-Muster oder ein einfaches Wrapper-Objekt hier benutzen? Deserialisieren Sie direkt in einen Typ, der von einer Abstraktion umgeben ist, die die feinkörnige Konstruktion ermöglicht, die ich brauche?
Ich habe etwas ähnliches markiert die Eigenschaften mit Serialisierungsattributen. Schreiben Sie dann eine Methode, die markierte Eigenschaften ausdrückt und dann in der XML-Datei nach dem Inhalt sucht, um sie zu setzen. Wenn man davon ausgeht, dass es kein Überkreuzen zwischen den Argumenten des Konstrukteurs und der Hydration gibt, dann sollte man darüber nachdenken. Verwenden Sie die Serialisierung, um die Argumente des Konstruktors zu erhalten. –
Darf ich fragen, was "Hydrat" in diesem Zusammenhang bedeutet? –
@KennethK. Ich denke, das ist der Kern des Problems. Ich möchte, dass die Eigenschaften von 'myObject' mit den entsprechenden Werten im XML initialisiert werden, dies bedeutet jedoch, dem Programm mitzuteilen, wie es zu tun ist. Ich suchte nach etwas, bei dem Felder nicht manuell zugeordnet werden mussten, aber es sieht so aus, als ob dies nicht möglich ist. – Ben