Udostępnij za pośrednictwem


Niestandardowe elementy formatujące komunikaty

Zawartość komunikatu jest często w postaci xml, która zwykle nie jest wygodnym formatem dla aplikacji. Aplikacje manipulują obiektami, uzyskują i ustawiają ich właściwości. Program Windows Communication Foundation (WCF) używa kontraktu danych do konwertowania Message obiektu na obiekt łatwo obsługiwany przez aplikację. Te procesy są nazywane serializacji i deserializacji. Należy pamiętać, że te same terminy służą do opisywania serializacji i deserializacji wykonywanej przez warstwę transportową do i z formatu przewodu komunikatów, który jest niepowiązanym procesem.

Możesz użyć niestandardowego formatatora komunikatów, jeśli musisz zaimplementować wyspecjalizowaną konwersję między komunikatami i obiektami, których nie można osiągnąć za pomocą kontraktu danych. W tym celu należy zmodyfikować lub rozszerzyć zachowanie wykonywania określonej operacji kontraktu na kliencie lub usłudze.

Niestandardowe formatery komunikatów na kliencie

Interfejs IClientMessageFormatter definiuje metody używane do kontrolowania konwersji komunikatów na obiekty i obiekty w komunikaty dla aplikacji klienckich.

Należy zaimplementować ten interfejs. Najpierw przesłoń metodę DeserializeReply deserializowania komunikatu. Ta metoda jest wywoływana po odebraniu komunikatu przychodzącego, ale przed wysłaniem jej do operacji klienta.

Następnie przesłoń metodę SerializeRequest , aby serializować obiekt. Ta metoda jest wywoływana przed wysłaniem komunikatu wychodzącego.

Aby wstawić niestandardowy formater do aplikacji usługi, przypisz IClientMessageFormatter obiekt do Formatter właściwości przy użyciu zachowania operacji. Aby uzyskać informacje o zachowaniach, zobacz Konfigurowanie i rozszerzanie środowiska uruchomieniowego przy użyciu zachowań.

Niestandardowe moduły formatujące komunikaty w usłudze

Interfejs IDispatchMessageFormatter definiuje metody, które konwertują Message obiekt na parametry operacji i z parametrów na Message obiekt w aplikacji usługi.

Należy zaimplementować ten interfejs. Najpierw przesłoń metodę DeserializeReply deserializowania komunikatu. Ta metoda jest wywoływana po odebraniu komunikatu przychodzącego, ale przed wysłaniem jej do operacji klienta.

Następnie przesłoń metodę SerializeRequest , aby serializować obiekt. Ta metoda jest wywoływana przed wysłaniem komunikatu wychodzącego.

Aby wstawić niestandardowy formater do aplikacji usługi, przypisz IDispatchMessageFormatter obiekt do Formatter właściwości przy użyciu zachowania operacji. Aby uzyskać informacje o zachowaniach, zobacz Konfigurowanie i rozszerzanie środowiska uruchomieniowego przy użyciu zachowań.

Zobacz też