2009-08-11 7 views
4

Wir suchen nach einer Bibliothek, die das Marshalling und Unmarshalling wie JAX-B in Java unterstützt. Gibt es eine hochmoderne Bibliothek?Gibt es etwas wie JAX-B für C#?

+1

http://stackoverflow.com/questions/765422/jaxb-äquivalenz-in-c – AakashM

+1

Ich glaube nicht, dass dies ein Betrogener ist. Für das, was ich von der Frage verstehe, denke ich, dass das OP versucht, einen Rahmen zu finden, der JAXB ähnlich ist und kein externes Werkzeug ... –

+0

du hast es bruno conde – codevour

Antwort

4

Wie Bruno sagte, was Sie suchen, ist in der Namespace System.Xml.Serialization, genauer gesagt die Klasse. Um ein Objekt in XML zu serialisieren, müssen Sie nur die Methode Serialize aufrufen, und umgekehrt kann die Methode Deserialize verwendet werden. Weitere Informationen finden Sie im MSDN-Thema Introducing XML Serialization.

Sie können manchmal einen Haken beim Serialisieren in XML, wenn Sie Probleme haben, achten Sie darauf, Auschecken (und dazu beitragen) this thread.

0

Es gibt etwas wie, aber nicht ganz wie JAXB. Ähnliches wird von Allon Guralnek und Bruno Conde gesagt. Der Unterschied besteht in der Deserialisierung. Mit dem XmlSerializer müssen Sie einen Typ angeben. Der Typ kann aus einer XSD-Datei, einem XML-Schema, stammen, das vom XSD.EXE-Tool verarbeitet wird. Das Tool erstellt eine CS-Datei mit partiellen Klassen für jeden definierten Typ im XML-Schema. Es ist bequem zu bedienen.

Sie können den Derserializer jedoch nicht in XmlSerilaizer verwenden, wenn Sie keinen Typ für gültiges XML haben. Das Szenario könnte so aussehen. Sie empfangen xml-formatierte Nachrichten aus einer Nachrichtenwarteschlange. Möglicherweise erhalten Sie einen der in einem XML-Schema definierten Typen. Mit JAXB demerialisieren Sie das XML zu einem Objekt und ermitteln mit der Eigenschaft getClass, um welchen Typ es sich handelt. Ich habe keinen ähnlichen Weg gefunden, das in C# zu tun.

Verwandte Themen