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.