Delen via


Aangepaste berichtindelingen

De inhoud in een bericht heeft vaak de vorm van XML, wat meestal geen handige indeling is voor een toepassing. Toepassingen bewerken objecten, het ophalen en instellen van hun eigenschappen. Windows Communication Foundation (WCF) gebruikt het gegevenscontract om een Message object te converteren naar een object dat eenvoudig kan worden verwerkt door een toepassing. Deze processen worden serialisatie en deserialisatie genoemd. Houd er rekening mee dat dezelfde termen worden gebruikt om de serialisatie en deserialisatie te beschrijven die wordt uitgevoerd door de transportlaag van en naar de berichtdraadindeling, wat een niet-gerelateerd proces is.

U kunt een aangepaste berichtindeling gebruiken als u een gespecialiseerde conversie wilt implementeren tussen berichten en objecten die u niet kunt uitvoeren via een gegevenscontract. Doe dit door het uitvoeringsgedrag van een specifieke contractbewerking op een client of een service te wijzigen of uit te breiden.

Aangepaste berichtindelingen op de client

De IClientMessageFormatter interface definieert methoden die worden gebruikt voor het beheren van de conversie van berichten naar objecten en objecten in berichten voor clienttoepassingen.

U moet deze interface implementeren. Overschrijf eerst de DeserializeReply methode om een bericht te deserialiseren. Deze methode wordt aangeroepen nadat een binnenkomend bericht is ontvangen, maar voordat het naar de clientbewerking wordt verzonden.

Overschrijf vervolgens de SerializeRequest methode om een object te serialiseren. Deze methode wordt aangeroepen voordat een uitgaand bericht wordt verzonden.

Als u de aangepaste indeling in de servicetoepassing wilt invoegen, wijst u het IClientMessageFormatter object toe aan de Formatter eigenschap met behulp van een bewerkingsgedrag. Zie De runtime configureren en uitbreiden met gedrag voor meer informatie over gedrag.

Aangepaste berichtindelingen op de service

De IDispatchMessageFormatter interface definieert methoden waarmee een Message object wordt geconverteerd naar parameters voor een bewerking en van parameters naar een Message object in een servicetoepassing.

U moet deze interface implementeren. Overschrijf eerst de DeserializeReply methode om een bericht te deserialiseren. Deze methode wordt aangeroepen nadat een binnenkomend bericht is ontvangen, maar voordat het naar de clientbewerking wordt verzonden.

Overschrijf vervolgens de SerializeRequest methode om een object te serialiseren. Deze methode wordt aangeroepen voordat een uitgaand bericht wordt verzonden.

Als u de aangepaste indeling in de servicetoepassing wilt invoegen, wijst u het IDispatchMessageFormatter object toe aan de Formatter eigenschap met behulp van een bewerkingsgedrag. Zie De runtime configureren en uitbreiden met gedrag voor meer informatie over gedrag.

Zie ook