Anpassade meddelandeformaterare
Innehållet i ett meddelande är ofta i form av XML, vilket vanligtvis inte är ett praktiskt format för ett program. Program manipulerar objekt, hämtar och ställer in sina egenskaper. Windows Communication Foundation (WCF) använder datakontraktet för att konvertera ett Message objekt till ett objekt som enkelt hanteras av ett program. Dessa processer kallas serialisering och deserialisering. Observera att samma termer används för att beskriva serialiseringen och deserialiseringen som utförs av transportskiktet till och från meddelandetrådsformatet, vilket är en orelaterad process.
Du kan använda en anpassad meddelandeformaterare om du behöver implementera en specialiserad konvertering mellan meddelanden och objekt som du inte kan utföra med hjälp av ett datakontrakt. Gör detta genom att ändra eller utöka körningsbeteendet för en specifik kontraktsåtgärd på en klient eller en tjänst.
Anpassade meddelandeformaterare på klienten
Gränssnittet IClientMessageFormatter definierar metoder som används för att styra konverteringen av meddelanden till objekt och objekt till meddelanden för klientprogram.
Du måste implementera det här gränssnittet. Åsidosätt DeserializeReply först metoden för att deserialisera ett meddelande. Den här metoden anropas när ett inkommande meddelande har tagits emot, men innan det skickas till klientåtgärden.
Åsidosätt SerializeRequest sedan metoden för att serialisera ett objekt. Den här metoden anropas innan ett utgående meddelande skickas.
Om du vill infoga den anpassade formateringen i tjänstprogrammet tilldelar du IClientMessageFormatter objektet till Formatter egenskapen med hjälp av ett åtgärdsbeteende. Information om beteenden finns i Konfigurera och utöka körningen med beteenden.
Anpassade meddelandeformaterare i tjänsten
Gränssnittet IDispatchMessageFormatter definierar metoder som konverterar ett Message objekt till parametrar för en åtgärd och från parametrar till ett Message objekt i ett tjänstprogram.
Du måste implementera det här gränssnittet. Åsidosätt DeserializeReply först metoden för att deserialisera ett meddelande. Den här metoden anropas när ett inkommande meddelande har tagits emot, men innan det skickas till klientåtgärden.
Åsidosätt SerializeRequest sedan metoden för att serialisera ett objekt. Den här metoden anropas innan ett utgående meddelande skickas.
Om du vill infoga den anpassade formateringen i tjänstprogrammet tilldelar du IDispatchMessageFormatter objektet till Formatter egenskapen med hjälp av ett åtgärdsbeteende. Information om beteenden finns i Konfigurera och utöka körningen med beteenden.