Använda kontrakt i arbetsflöde
När du implementerar en tjänst definierar du ett antal kontrakt som beskriver tjänsten och de data som den skickar och tar emot. Data representeras som datakontrakt och meddelandekontrakt. både WCF- och arbetsflödestjänster använder definitioner av datakontrakt och meddelandekontrakt som en del av tjänstbeskrivningar. Själva tjänsten exponerar metadata (i form av WSDL) för att beskriva tjänstens åtgärder. I WCF definierar tjänstkontrakt och åtgärdskontrakt tjänsten och de åtgärder som den stöder. Men i en arbetsflödestjänst ingår dessa kontrakt i själva affärsprocessen. de exponeras i metadata av en process som kallas kontraktsinferens.
Kontraktsslutsats
När en arbetsflödestjänst hanteras med hjälp av WorkflowServiceHostgranskas arbetsflödesdefinitionen och ett kontrakt genereras baserat på den uppsättning meddelandeaktiviteter som finns i arbetsflödet. I synnerhet används följande aktiviteter och egenskaper för att generera kontraktet:
Receive Aktivitet
SendReply Aktivitet
TransactedReceiveScope Aktivitet
Slutresultatet av kontraktsinferens är en beskrivning av tjänsten med samma datastrukturer som WCF-tjänst- och åtgärdskontrakt. Den här informationen används sedan för att exponera WSDL för arbetsflödestjänsten.