Meldungsserialisierung
Aktualisiert: November 2007
Serialisierung ist der Prozess, bei dem die Zustandsinformationen von Objekten in eine Form konvertiert wird, die gespeichert oder übertragen werden kann. Der Grundgedanke der Serialisierung besteht darin, dass ein Objekt seinen aktuellen Zustand, der in der Regel durch die Werte der zugehörigen Membervariablen bestimmt ist, in einen persistenten Speicher schreibt. Später kann das Objekt neu erstellt werden, indem sein Zustand aus dem Speicher gelesen (bzw. "deserialisiert") wird. Die Serialisierung handhabt alle Details zu Objektzeigern und zyklischen Objektverweisen, die bei der Serialisierung eines Objekts verwendet werden.
Bei dem Message Queuing-Feature bezieht sich die Serialisierung speziell auf die Konvertierung eines Objekts oder einer Datengruppe in eine Meldung, die an eine Warteschlange gesendet werden kann, sowie auf die anschließende Rückkonvertierung von aus der Warteschlange abgerufenen Meldungen in Objekte oder Daten, die von der Anwendung verarbeitet werden können.
Eine Formatierungsobjekt behandelt Meldungsserialisierung in der Visual Studio-Anwendung oder der .NET Framework-Anwendung. Wenn eine Meldung an die Warteschlange gesendet wird, serialisiert das Formatierungsprogramm ein Objekt in einen Stream, der an die Meldungswarteschlange gesendet werden kann. Beim Lesen aus einer Warteschlange deserialisiert das Formatierungsprogramm die Meldungsdaten in die Body-Eigenschaft.
Sie wählen die geeignete Art des Formatierungsprogramms für den Datentyp, den Sie senden und empfangen möchten. Visual Studio und .NET Framework werden mit drei vordefinierten Formatierungsprogrammen geliefert, mit denen jeweils ein bestimmter Datentyp gespeichert und zurückgeladen werden kann:
Das XmlMessageFormatter-Objekt speichert Objekte und einfache Datentypen in und aus Meldungen, wobei lesbare XML-Zeichenfolgen verwendet werden. Dies ist die Standardeinstellung des Formatierungsprogramms für MessageQueue-Komponenten.
Das BinaryMessageFormatter-Objekt speichert ein oder mehrere verbundene Objekte in serialisierte Streams. Das Ergebnis ist sehr kompakt und schnell zu analysieren, für den Menschen aber nicht lesbar.
Das ActiveXMessageFormatter-Objekt speichert einfache Datentypen und ermöglicht eine Interoperabilität mit Komponenten, die mit vorherigen Versionen von Message Queuing arbeiten. Die resultierende Serialisierung ist sehr kompakt. Dieses Formatierungsprogramm wurde im Hinblick auf Windows entwickelt und erzeugt keine für den Menschen lesbaren Ergebnisse. Es handelt sich dabei jedoch um eine äußerst schnelle Serialisierungsmethode.
Standardmäßig wird beim Erstellen einer Instanz einer MessageQueue-Komponente ein XmlMessageFormatter erstellt und der Instanz zugeordnet. Beim Aufrufen der Send-Methode für die MessageQueue-Instanz wird der Text der Meldung mit diesem Formatierungsprogramm serialisiert. Sie müssen keinen zusätzlichen Code schreiben, um das Formatierungsprogramm bei einer Sendeoperation verwenden zu können.
Das Lesen einer Meldung ist etwas komplexer. Um eine in der Warteschlange enthaltenen Meldung mit einem Formatierungsprogramm lesen zu können, müssen Sie Eigenschaften festlegen, die angeben, wie der Meldungsinhalt behandelt werden soll. Wenn Sie das XmlMessageFormatter-Objekt verwenden, legen Sie die TargetTypes-Eigenschaft oder die TargetTypeNames-Eigenschaft fest. Wenn Sie das BinaryMessageFormatter-Objekt verwenden, legen Sie eine andere Gruppe von Eigenschaften fest. Das ActiveXMessageFormatter-Objekt verfügt über keine zugeordneten Eigenschaften. Weitere Informationen hierzu finden Sie unter Lesen und Empfangen von Meldungen.
Wenn Sie mit anderen Datentypen arbeiten müssen, können Sie zusätzlich zu den mit Visual Studio und .NET Framework gelieferten Formatierungsprogrammen eigene Formatierungsprogramme erstellen. Das Formatierungsprogramm können Sie in ein Projekt importieren und im Code darauf zugreifen.
Sie können das gewünschte Formatierungsprogramm wählen, indem Sie die Formatter-Eigenschaft für die Warteschlange, die Meldung oder die MessageQueue-Komponente festlegen, mit der Sie arbeiten.
Vorteile der XML-Meldungsformatierung
Ein Vorteil des XML-Formatierungsprogramms besteht darin, dass Sie die Zeichenfolgen lesen können, die beim Serialisieren des Objekts oder der Daten erstellt werden. Das bedeutet, dass Sie sich die Meldung selbst ansehen und das Problem möglicherweise beheben können, falls ein Fehler auftritt und die Meldung nicht aus der Meldungswarteschlange zurückgeladen werden kann.
Ein weiterer Vorteil ist der, dass Meldungen, die mit diesem Formatierungsprogramm serialisiert werden, nicht mit demselben Formatierungsobjekt deserialisiert werden müssen. Das heißt, dass Sie im Empfänger und im Absender nicht über dieselbe Formatierungsprogrammklasse verfügen müssen, solange beide Seiten das Datenschema kennen. Außerdem müssen Meldungen, die mit dem XML-Formatierungsprogramm serialisiert wurden, nicht unbedingt deserialisiert werden. Die meisten Browser und anderen XML-Viewer können XML-Meldungen analysieren.
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Instanzen von MessageQueue-Komponenten