Sdílet prostřednictvím


Vlastní formátování zpráv

Obsah zprávy je často ve formě XML, což obvykle není vhodný formát pro aplikaci. Aplikace manipulují s objekty, získávají a nastavují jejich vlastnosti. Windows Communication Foundation (WCF) používá kontrakt dat k převodu Message objektu na objekt snadno zpracovávaný aplikací. Tyto procesy se nazývají serializace a deserializace. Všimněte si, že tyto stejné termíny se používají k popisu serializace a deserializace provedené transportní vrstvou do a z formátu přenosu zpráv, což je nesouvisející proces.

Pokud potřebujete implementovat specializovaný převod mezi zprávami a objekty, které nelze dosáhnout pomocí kontraktu dat, můžete použít vlastní formát zprávy. Provedete to úpravou nebo rozšířením chování provádění konkrétní operace kontraktu v klientovi nebo službě.

Vlastní formátování zpráv v klientovi

Rozhraní IClientMessageFormatter definuje metody, které se používají k řízení převodu zpráv na objekty a objekty do zpráv pro klientské aplikace.

Toto rozhraní musíte implementovat. Nejprve přepište metodu DeserializeReply pro deserializaci zprávy. Tato metoda se volá po přijetí příchozí zprávy, ale před odesláním do operace klienta.

Dále přepište metodu SerializeRequest serializace objektu. Tato metoda se volá před odesláním odchozí zprávy.

Chcete-li vložit vlastní formátovací modul do aplikace služby, přiřaďte IClientMessageFormatter objekt vlastnosti Formatter pomocí chování operace. Informace o chování naleznete v tématu Konfigurace a rozšíření modulu runtime pomocí chování.

Vlastní formátování zpráv ve službě

Rozhraní IDispatchMessageFormatter definuje metody, které převedou Message objekt na parametry operace a z parametrů na Message objekt v aplikaci služby.

Toto rozhraní musíte implementovat. Nejprve přepište metodu DeserializeReply pro deserializaci zprávy. Tato metoda se volá po přijetí příchozí zprávy, ale před odesláním do operace klienta.

Dále přepište metodu SerializeRequest serializace objektu. Tato metoda se volá před odesláním odchozí zprávy.

Chcete-li vložit vlastní formátovací modul do aplikace služby, přiřaďte IDispatchMessageFormatter objekt vlastnosti Formatter pomocí chování operace. Informace o chování naleznete v tématu Konfigurace a rozšíření modulu runtime pomocí chování.

Viz také