Delen via


Ontwikkeling van De eerste werkstroomservice contract

Vanaf .NET Framework 4.5 biedt Windows Workflow Foundation (WF) een betere integratie tussen webservices en werkstromen in de vorm van contract-first werkstroomontwikkeling. Met het hulpprogramma voor het ontwikkelen van werkstromen voor contract-first kunt u het contract eerst ontwerpen in code. Het hulpprogramma genereert vervolgens automatisch een activiteitssjabloon in de werkset voor de bewerkingen in het contract. Dit onderwerp bevat een overzicht van hoe de activiteiten en eigenschappen in een werkstroomservice worden toegewezen aan de kenmerken van een servicecontract. Voor een stapsgewijs voorbeeld van het maken van een contract-first werkstroomservice raadpleegt u Procedure: Een werkstroomservice maken die een bestaand servicecontract verbruikt.

In dit onderwerp

Servicecontractkenmerken toewijzen aan werkstroomkenmerken

In de tabellen in de volgende secties worden de verschillende WCF-kenmerken en -eigenschappen opgegeven en hoe deze worden toegewezen aan de berichtenactiviteiten en eigenschappen in een contract-first-werkstroom.

Servicecontractkenmerken

Eigenschapsnaam Ondersteund Beschrijving WF-validatie
CallbackContract Nee Hiermee wordt het type callback-contract opgevraagd of ingesteld wanneer het contract een dubbelzijdig contract is. (N/B)
ConfigurationName Nee Hiermee haalt u de naam op die wordt gebruikt om de service te vinden in een toepassingsconfiguratiebestand of stelt u deze in. (N/B)
HasProtectionLevel Ja Hiermee wordt een waarde opgehaald die aangeeft of aan het lid een beveiligingsniveau is toegewezen. Receive.ProtectionLevel mag niet null zijn.
Naam Ja Hiermee haalt u de naam op voor het <portType-element> in WSDL (Web Services Description Language). Receive.ServiceContractName.LocalName moet overeenkomen.
Naamruimte Ja Hiermee haalt u de naamruimte van het <portType-element> op in WSDL (Web Services Description Language). Receive.ServiceContractName.NameSpace moet overeenkomen met
ProtectionLevel Ja Hiermee geeft u op of de binding voor het contract de waarde van de eigenschap ProtectionLevel moet ondersteunen. Receive.ProtectionLevel moet overeenkomen.
SessionMode Nee Hiermee haalt u op of stelt u in of sessies zijn toegestaan, niet toegestaan of vereist. (N/B)
TypeId Nee Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. (Overgenomen van kenmerk.) (N/B)

Voeg hier de hoofdtekst van de subsectie in.

Kenmerken van bewerkingscontract

Eigenschapsnaam Ondersteund Beschrijving WF-validatie
Actie Ja Hiermee haalt u de WS-Adresseringsactie van het aanvraagbericht op of stelt u deze in. Receive.Action moet overeenkomen.
AsyncPattern Nee Geeft aan dat een bewerking asynchroon wordt geïmplementeerd met behulp van een methodepaar Begin<methodName> en End<methodName> in een servicecontract. (N/B)
HasProtectionLevel Ja Hiermee wordt een waarde opgehaald die aangeeft of de berichten voor deze bewerking moeten worden versleuteld, ondertekend of beide. Receive.ProtectionLevel mag niet null zijn.
IsInitiating Nee Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de methode een bewerking implementeert waarmee een sessie op de server kan worden gestart (als een dergelijke sessie bestaat). (N/B)
IsOneWay Ja Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of een bewerking een antwoordbericht retourneert. (No SendReply for this Receive OR no ReceiveReply for this SendReply for this SendReply).
IsTerminating Nee Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de servicebewerking ervoor zorgt dat de server de sessie sluit na het antwoordbericht, indien van toepassing, wordt verzonden. (N/B)
Naam Ja Hiermee haalt u de naam van de bewerking op of stelt u deze in. Receive.OperationName moet overeenkomen.
ProtectionLevel Ja Hiermee wordt een waarde opgehaald of ingesteld waarmee wordt aangegeven of de berichten van een bewerking moeten worden versleuteld, ondertekend of beide. Receive.ProtectionLevel moet overeenkomen.
ReplyAction Ja Hiermee wordt de waarde van de SOAP-actie opgehaald of ingesteld voor het antwoordbericht van de bewerking. SendReply.Action moet overeenkomen.
TypeId Nee Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. (Overgenomen van kenmerk.) (N/B)

Kenmerken van berichtcontract

Eigenschapsnaam Ondersteund Beschrijving WF-validatie
HasProtectionLevel Ja Hiermee wordt een waarde opgehaald die aangeeft of het bericht een beveiligingsniveau heeft. Geen validatie (Receive.Content en SendReply.Content moeten overeenkomen met het type berichtcontract).
IsWrapped Ja Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de hoofdtekst van het bericht een wrapper-element heeft. Geen validatie (Receive.Content en Sendreply.Content moeten overeenkomen met het type berichtcontract).
ProtectionLevel Nee Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het bericht moet worden versleuteld, ondertekend of beide. (N/B)
TypeId Ja Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. (Overgenomen van kenmerk.) Geen validatie (Receive.Content en SendReply.Content moeten overeenkomen met het type berichtcontract).
WrapperName Ja Hiermee haalt u de naam van het wrapper-element van de berichttekst op of stelt u deze in. Geen validatie (Receive.Content en SendReply.Content moeten overeenkomen met het type berichtcontract).
WrapperNamespace Nee Hiermee haalt u de naamruimte van het element body wrapper van het bericht op of stelt u deze in. (N/B)

Kenmerken van gegevenscontract

Eigenschapsnaam Ondersteund Beschrijving WF-validatie
IsReference Nee Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of u objectverwijzingsgegevens wilt behouden. (N/B)
Naam Ja Hiermee wordt de naam van het gegevenscontract voor het type opgehaald of ingesteld. Geen validatie (Receive.Content en SendReply.Content moeten overeenkomen met het type berichtcontract).
Naamruimte Ja Hiermee haalt u de naamruimte voor het gegevenscontract op of stelt u deze in voor het type. Geen validatie (Receive.Content en SendReply.Content moeten overeenkomen met het type berichtcontract).
TypeId Nee Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. (Overgenomen van kenmerk.) (N/B)

Kenmerken van foutcontract

Eigenschapsnaam Ondersteund Beschrijving WF-validatie
Actie Ja Hiermee haalt u de actie op van het SOAP-foutbericht dat is opgegeven als onderdeel van het bewerkingscontract. SendReply.Action moet overeenkomen.
DetailType Ja Hiermee haalt u het type van een serialiseerbare object op dat foutinformatie bevat. SendReply.Content moet overeenkomen met het type
HasProtectionLevel Nee Hiermee wordt een waarde opgehaald die aangeeft of aan het SOAP-foutbericht een beveiligingsniveau is toegewezen. (N/B)
Naam Nee Hiermee wordt de naam van het foutbericht in WSDL (Web Services Description Language) opgeslagen of ingesteld. (N/B)
Naamruimte Nee Hiermee wordt de naamruimte van de SOAP-fout opgehaald of ingesteld. (N/B)
ProtectionLevel Nee Hiermee geeft u het beveiligingsniveau op dat de SOAP-fout vereist van de binding. (N/B)
TypeId Nee Wanneer deze is geïmplementeerd in een afgeleide klasse, krijgt u een unieke id voor dit kenmerk. (Overgenomen van kenmerk.) (N/B)

Aanvullende informatie over ondersteuning en implementatie

Niet-ondersteunde servicecontractfuncties

  • Het gebruik van TPL-taken (Task Parallel Library) in contracten wordt niet ondersteund.

  • Overname in servicecontracten wordt niet ondersteund.

Het genereren van geconfigureerde berichtenactiviteiten

Er worden twee openbare statische methoden toegevoegd aan de Receive en SendReply activiteiten ter ondersteuning van het genereren van vooraf geconfigureerde berichtactiviteiten bij het gebruik van contract-first werkstroomservices.

De activiteit die door deze methoden wordt gegenereerd, moet contractvalidatie doorgeven en daarom worden deze methoden intern gebruikt als onderdeel van de validatielogica voor Receive en SendReply. De OperationName, ServiceContractName, Action, , SerializerOption, en KnownTypes ProtectionLevelzijn allemaal vooraf geconfigureerd om overeen te komen met het geïmporteerde contract. Op de pagina met inhoudseigenschappen voor de activiteiten in de werkstroomontwerper zijn de secties Bericht of Parameters ook vooraf geconfigureerd om overeen te komen met het contract.

WCF-foutcontracten worden ook verwerkt door een afzonderlijke set geconfigureerde SendReply activiteiten te retourneren voor elk van de fouten die worden weergegeven in de Faults FaultDescriptionCollection.

Voor andere onderdelen die OperationDescription momenteel niet worden ondersteund door WF-services (bijvoorbeeld WebGet/WebInvoke-gedrag of aangepast bewerkingsgedrag), negeert de API deze waarden als onderdeel van de generatie en configuratie. Er worden geen uitzonderingen gegenereerd.