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.