Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 založené na 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 |
|---|---|---|---|
| Smlouva o zpětném volání | Ne | Získá nebo nastaví typ kontraktu zpětného volání, pokud je kontrakt duplexní. | (Není k dispozici) |
| NázevKonfigurace | Ne | Získá nebo nastaví název použitý k vyhledání služby v konfiguračním souboru aplikace. | (Není k dispozici) |
| Má úroveň ochrany | 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. |
| Namespace | Ano | Získá nebo nastaví obor názvů elementu <portType> v jazyce 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 vlastnosti ProtectionLevel. | Receive.ProtectionLevel by měl odpovídat. |
| SessionMode | Ne | Získá nebo nastaví, zda jsou relace povoleny, nejsou povoleny nebo požadovány. | (Není k dispozici) |
| TypeId | Ne | 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-Addressing ve zprávě požadavku. | Akce Receive.Action se má shodovat. |
| AsyncPattern | Ne | Označuje, že operace se implementuje asynchronně pomocí dvojice metod BeginName<> a End<methodName> ve smlouvě služby. | (Není k dispozici) |
| Má úroveň ochrany | 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. |
| Zahajuje | Ne | 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 Receive není k dispozici SendReply nebo pro toto Send není k dispozici ReceiveReply). |
| JeUkončováno | Ne | 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 měl odpovídat. |
| Akce odpovědi | Ano | Získá nebo nastaví hodnotu akce SOAP pro odpověď zprávy operace. | SendReply.Action musí odpovídat. |
| TypeId | Ne | 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 |
|---|---|---|---|
| Má úroveň ochrany | 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 | Ne | 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 obalového prvku textu těla zprávy. | Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy). |
| WrapperNamespace | Ne | Získá nebo nastaví obor názvů elementu obalovače textu zprávy. | (Není k dispozici) |
Atributy smlouvy o údajích
| Název vlastnosti | Podporováno | Popis | Ověřování WF |
|---|---|---|---|
| IsReference | Ne | Získá nebo nastaví hodnotu, která určuje, zda zachovat odkazová data objektu. | (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). |
| Namespace | Ano | Nastaví nebo získá obor názvů pro datový kontrakt daného typu. | Žádné ověření (Receive.Content a SendReply.Content musí odpovídat typu kontraktu zprávy). |
| TypeId | Ne | 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 chybového kontraktu
| 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 musí odpovídat. |
| Typ podrobnosti | Ano | Získá typ serializovatelné objektu, který obsahuje informace o chybě. | SendReply.Content by se měl shodovat s typem |
| Má úroveň ochrany | Ne | Získá hodnotu, která označuje, zda chybová zpráva SOAP má přiřazenou úroveň ochrany. | (Není k dispozici) |
| Název | Ne | Získá nebo nastaví název chybové zprávy v wsDL (Web Services Description Language). | (Není k dispozici) |
| Namespace | Ne | Získá nebo nastaví obor názvů chyby SOAP. | (Není k dispozici) |
| Úroveň ochrany | Ne | Určuje stupeň ochrany, který chyba SOAP vyžaduje od vazby. | (Není k dispozici) |
| TypeId | Ne | 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 aktivit Receive a SendReply se přidají dvě veřejné statické metody, aby podporovaly generování předem nakonfigurovaných aktivit zpráv při použití služeb pracovního postupu s přístupem "nejprve kontrakt".
Aktivita generovaná těmito metodami by měla projít ověřením kontraktu, a tyto metody se proto používají interně jako součást ověřovací logiky pro Receive a SendReply. OperationName, ServiceContractName, Action, SerializerOption, ProtectionLevel a KnownTypes jsou všechny předem nakonfigurované tak, aby 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 FaultsFaultDescriptionCollection.
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.