Sdílet prostřednictvím


Vývoj služby pracovního postupu s upřednostněním kontraktu

Počínaje rozhraním .NET Framework 4.5 nabízí Windows Workflow Foundation (WF) lepší integraci mezi webovými službami a pracovními postupy ve formě vývoje pracovních postupů založených na kontraktech. Nástroj pro vývoj pracovních postupů pro kontrakty umožňuje nejprve navrhnout kontrakt v kódu. Nástroj pak automaticky vygeneruje šablonu aktivity v sadě nástrojů pro operace ve smlouvě. Toto téma obsahuje přehled o tom, jak se aktivity a vlastnosti ve službě pracovního postupu mapují na atributy kontraktu služby. Podrobný příklad vytvoření služby pracovního postupu prvního kontraktu najdete v tématu Postupy: Vytvoření služby pracovního postupu, která využívá existující kontrakt služby.

V tomto tématu

Mapování atributů kontraktů služby na atributy pracovního postupu

Tabulky v následujících částech určují různé atributy a vlastnosti WCF a způsob jejich mapování na aktivity a vlastnosti zasílání zpráv v pracovním postupu prvního kontraktu.

Atributy kontraktů služeb

Název vlastnosti Podporováno Popis Ověřování WF
CallbackContract No Získá nebo nastaví typ zpětného volání kontrakt, když kontrakt je duplexní kontrakt. (Není k dispozici)
ConfigurationName No Získá nebo nastaví název použitý k vyhledání služby v konfiguračním souboru aplikace. (Není k dispozici)
HasProtectionLevel Ano Získá hodnotu, která označuje, zda člen má přiřazenou úroveň ochrany. Receive.ProtectionLevel by neměl mít hodnotu null.
Název Ano Získá nebo nastaví název pro <portType> element v WsDL (Web Services Description Language). Receive.ServiceContractName.LocalName by se měl shodovat.
Obor názvů Ano Získá nebo nastaví obor názvů <elementu portType> v jazyku WSDL (Web Services Description Language). Hodnota Receive.ServiceContractName.NameSpace by se měla shodovat
Úroveň ochrany Ano Určuje, zda vazba pro kontrakt musí podporovat hodnotu ProtectionLevel vlastnost. Receive.ProtectionLevel by se měl shodovat.
SessionMode No Získá nebo nastaví, zda jsou relace povoleny, nejsou povoleny nebo požadovány. (Není k dispozici)
TypeId No Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. (Zděděno z atributu.) (Není k dispozici)

Sem vložte text pododdílu.

Atributy kontraktu operace

Název vlastnosti Podporováno Popis Ověřování WF
Akce Ano Získá nebo nastaví akci WS-Adresování zprávy požadavku. Akce Receive.Action by se měla shodovat.
AsyncPattern No Označuje, že operace se implementuje asynchronně pomocí dvojice metod BeginName<> a End<methodName> ve smlouvě služby. (Není k dispozici)
HasProtectionLevel Ano Získá hodnotu, která označuje, zda zprávy pro tuto operaci musí být šifrované, podepsané nebo obojí. Receive.ProtectionLevel by neměl mít hodnotu null.
IsInitiating No Získá nebo nastaví hodnotu, která označuje, zda metoda implementuje operaci, která může zahájit relaci na serveru (pokud taková relace existuje). (Není k dispozici)
IsOneWay Ano Získá nebo nastaví hodnotu, která určuje, zda operace vrací zprávu odpovědi. (Pro toto přijetí není k dispozici žádná odpověď SendReply nebo žádná akce ReceiveReply pro toto odeslání).
IsTerminating No Získá nebo nastaví hodnotu, která určuje, zda operace služby způsobí ukončení relace po odeslání zprávy odpovědi, pokud existuje. (Není k dispozici)
Název Ano Získá nebo nastaví název operace. Receive.OperationName by se měl shodovat.
Úroveň ochrany Ano Získá nebo nastaví hodnotu, která určuje, zda zprávy operace musí být šifrované, podepsané nebo obojí. Receive.ProtectionLevel by se měl shodovat.
ReplyAction Ano Získá nebo nastaví hodnotu akce SOAP pro odpověď zprávy operace. SendReply.Action by se měl shodovat.
TypeId No Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. (Zděděno z atributu.) (Není k dispozici)

Atributy kontraktu zpráv

Název vlastnosti Podporováno Popis Ověřování WF
HasProtectionLevel Ano Získá hodnotu, která označuje, zda zpráva má úroveň ochrany. Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy).
IsWrapped Ano Získá nebo nastaví hodnotu, která určuje, zda text zprávy má element obálky. Žádné ověření (Receive.Content a Sendreply.Content musí odpovídat typu kontraktu zprávy).
Úroveň ochrany No Získá nebo nastaví hodnotu, která určuje, zda zpráva musí být šifrovaná, podepsaná nebo obojí. (Není k dispozici)
TypeId Ano Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. (Zděděno z atributu.) Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy).
WrapperName Ano Získá nebo nastaví název obálky elementu textu zprávy. Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy).
WrapperNamespace No Získá nebo nastaví obor názvů elementu textu zprávy. (Není k dispozici)

Atributy kontraktu dat

Název vlastnosti Podporováno Popis Ověřování WF
IsReference No Získá nebo nastaví hodnotu, která určuje, zda chcete zachovat odkaz na objekt data. (Není k dispozici)
Název Ano Získá nebo nastaví název datového kontraktu pro typ. Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy).
Obor názvů Ano Získá nebo nastaví obor názvů pro datový kontrakt pro typ. Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy).
TypeId No Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. (Zděděno z atributu.) (Není k dispozici)

Atributy kontraktu selhání

Název vlastnosti Podporováno Popis Ověřování WF
Akce Ano Získá nebo nastaví akci chybové zprávy PROTOKOLU SOAP, která je určena jako součást kontraktu operace. SendReply.Action by se měl shodovat.
DetailType Ano Získá typ serializovatelné objektu, který obsahuje informace o chybě. SendReply.Content by se měl shodovat s typem
HasProtectionLevel No Získá hodnotu, která označuje, zda chybová zpráva SOAP má přiřazenou úroveň ochrany. (Není k dispozici)
Název No Získá nebo nastaví název chybové zprávy v wsDL (Web Services Description Language). (Není k dispozici)
Obor názvů No Získá nebo nastaví obor názvů chyby SOAP. (Není k dispozici)
Úroveň ochrany No Určuje úroveň ochrany, která chyba SOAP vyžaduje z vazby. (Není k dispozici)
TypeId No Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento atribut. (Zděděno z atributu.) (Není k dispozici)

Další informace o podpoře a implementaci

Nepodporované funkce kontraktů služeb

  • Použití úkolů TPL (Task Parallel Library) v kontraktech není podporováno.

  • Dědičnost kontraktů služeb není podporována.

Generování nakonfigurovaných aktivit zasílání zpráv

Do těchto aktivit se přidají Receive dvě veřejné statické metody, SendReply které podporují generování předem nakonfigurovaných aktivit zpráv při použití služeb pracovního postupu prvního kontraktu.

Aktivita generovaná těmito metodami by měla předat ověření kontraktu, a proto se tyto metody používají interně jako součást ověřovací logiky pro Receive a SendReply. Jsou OperationNamepředem nakonfigurované tak, KnownTypes ServiceContractNameActionSerializerOptionProtectionLevelaby odpovídaly importovanému kontraktu. Na stránce vlastností obsahu pro aktivity v návrháři pracovního postupu jsou oddíly Zpráva nebo Parametry také předem nakonfigurované tak, aby odpovídaly smlouvě.

Kontrakty chyb WCF se také zpracovávají vrácením samostatné sady nakonfigurovaných SendReply aktivit pro každou chybu, která se zobrazí v Faults FaultDescriptionCollectionsouboru .

V případě jiných částí OperationDescription , které služby WF dnes nepodporují (například chování WebGet/WebInvoke nebo chování vlastních operací), rozhraní API tyto hodnoty v rámci generování a konfigurace ignoruje. Nebudou vyvolány žádné výjimky.