Procedure: Toegang krijgen tot een service vanuit een werkstroomtoepassing
In dit onderwerp wordt beschreven hoe u een werkstroomservice aanroept vanuit een werkstroomconsoletoepassing. Dit is afhankelijk van de voltooiing van het onderwerp Procedure: Een werkstroomservice maken met het onderwerp Berichtenactiviteiten . Hoewel in dit onderwerp wordt beschreven hoe u een werkstroomservice aanroept vanuit een werkstroomtoepassing, kunnen dezelfde methoden worden gebruikt om een WCF-service (Windows Communication Foundation) aan te roepen vanuit een werkstroomtoepassing.
Een werkstroomconsoletoepassingsproject maken
Start Visual Studio 2012.
Laad het MyWFService-project dat u hebt gemaakt in het onderwerp Procedure: Een werkstroomservice maken met berichtactiviteiten .
Klik met de rechtermuisknop op de MyWFService-oplossing in Solution Explorer en selecteer Toevoegen, Nieuw project. Selecteer Werkstroom in de geïnstalleerde sjablonen en werkstroomconsoletoepassing in de lijst met projecttypen. Geef het project de naam MyWFClient en gebruik de standaardlocatie, zoals wordt weergegeven in de volgende afbeelding.
Klik op de knop OK om het dialoogvenster Nieuw project toevoegen te sluiten.
Nadat het project is gemaakt, wordt het bestand Workflow1.xaml geopend in de ontwerpfunctie. Klik op het tabblad Werkset om de werkset te openen als deze nog niet is geopend en klik op de punaise om het werksetvenster geopend te houden.
Druk op Ctrl+F5 om de service te bouwen en te starten. Net als voorheen wordt de ASP.NET Development Server gestart en wordt de WCF Help-pagina weergegeven. Let op de URI voor deze pagina, omdat u deze in de volgende stap moet gebruiken.
Klik met de rechtermuisknop op het Project MyWFClient in Solution Explorer en selecteer Serviceverwijzing toevoegen>. Klik op de knop Ontdekken om te zoeken in de huidige oplossing voor services. Klik op de driehoek naast Service1.xamlx in de lijst Services. Klik op de driehoek naast Service1 om de contracten weer te geven die door de Service1-service zijn geïmplementeerd. Vouw het knooppunt Service1 uit in de lijst Services . De echobewerking wordt weergegeven in de lijst Bewerkingen , zoals wordt weergegeven in de volgende afbeelding.
Behoud de standaardnaamruimte en klik op OK om het dialoogvenster Servicereferentie toevoegen te sluiten. Het volgende dialoogvenster wordt weergegeven.
Klik op OK om het dialoogvenster te sluiten. Druk vervolgens op Ctrl+Shift+B om de oplossing te bouwen. In de werkset is een nieuwe sectie toegevoegd met de naam MyWFClient.ServiceReference1.Activities. Vouw deze sectie uit en let op de Echo-activiteit die is toegevoegd, zoals wordt weergegeven in de volgende afbeelding.
Sleep een Sequence activiteit naar het ontwerpoppervlak en zet deze neer. Deze bevindt zich onder de sectie Controlestroom van de werkset.
Klik met de Sequence activiteit in de focus op de koppeling Variabelen en voeg een tekenreeksvariabele toe met de naam
inString
. Geef de variabele een standaardwaarde van"Hello, world"
en een tekenreeksvariabele met de naamoutString
, zoals wordt weergegeven in het volgende diagram.Sleep een Echo-activiteit en zet deze neer in de Sequence. In het eigenschappenvenster koppelt u het
inMsg
argument aan deinString
variabele en hetoutMsg
argument aan deoutString
variabele, zoals wordt weergegeven in de volgende afbeelding. Hiermee wordt de waarde van deinString
variabele doorgegeven aan de bewerking en wordt de retourwaarde vervolgens in deoutString
variabele weergegeven.Sleep een WriteLine-activiteit onder de Echo-activiteit en zet deze neer om de tekenreeks weer te geven die door de serviceoproep wordt geretourneerd. De activiteit WriteLine bevindt zich in het knooppunt Primitieven in de werkset. Bind het argument Tekst van de activiteit WriteLine aan de
outString
variabele door in het tekstvak van de schrijflijnactiviteit te typenoutString
. De werkstroom moet er nu uitzien als in de volgende afbeelding.Klik met de rechtermuisknop op de oplossing MyWFService en selecteer Opstartprojecten instellen. Selecteer het keuzerondje Meerdere opstartprojecten en selecteer Start voor elk project in de kolom Actie , zoals wordt weergegeven in de volgende afbeelding.
Druk op Ctrl+F5 om zowel de service als de client te starten. De ASP.NET Development Server host de service, de browser geeft de WCF Help-pagina weer en de clientwerkstroomtoepassing wordt gestart in een consolevenster en geeft de tekenreeks weer die wordt geretourneerd door de service (Hallo, wereld).