Delen via


Zelfstudie: Een Windows Communication Foundation-client maken

In deze zelfstudie wordt de vierde van de vijf taken beschreven die nodig zijn om een eenvoudige WCF-toepassing (Windows Communication Foundation) te maken. Zie Zelfstudie: Aan de slag met Windows Communication Foundation-toepassingen voor een overzicht van de zelfstudies.

De volgende taak voor het maken van een WCF-toepassing is het maken van een client door metagegevens op te halen uit een WCF-service. U gebruikt Visual Studio om een servicereferentie toe te voegen, waarmee de metagegevens van het MEX-eindpunt van de service worden opgehaald. Visual Studio genereert vervolgens een beheerd broncodebestand voor een clientproxy in de taal die u hebt gekozen. Er wordt ook een clientconfiguratiebestand (App.config) gemaakt. Met dit bestand kan de clienttoepassing verbinding maken met de service op een eindpunt.

Notitie

Als u een WCF-service aanroept vanuit een klassebibliotheekproject in Visual Studio, gebruikt u de functie Servicereferentie toevoegen om automatisch een proxy en een gekoppeld configuratiebestand te genereren. Omdat klassebibliotheekprojecten dit configuratiebestand echter niet gebruiken, moet u de instellingen in het gegenereerde configuratiebestand toevoegen aan het App.config-bestand voor het uitvoerbare bestand dat de klassebibliotheek aanroept.

Notitie

Als alternatief gebruikt u het hulpprogramma ServiceModel Metadata Utility in plaats van Visual Studio om de proxyklasse en het configuratiebestand te genereren.

De clienttoepassing gebruikt de gegenereerde proxyklasse om met de service te communiceren. Deze procedure wordt beschreven in de zelfstudie: Een client gebruiken.

In deze zelfstudie leert u het volgende:

  • Maak en configureer een console-app-project voor de WCF-client.
  • Voeg een servicereferentie toe aan de WCF-service om de proxyklasse en configuratiebestanden te genereren.

Een Windows Communication Foundation-client maken

  1. Een console-app-project maken in Visual Studio:

    1. Selecteer> Project/Oplossing openen in het menu Bestand en blader naar de Oplossing GettingStarted die u eerder hebt gemaakt (GettingStarted.sln). Selecteer Openen.

    2. Selecteer Solution Explorer in het menu Beeld.

    3. Selecteer in het venster Solution Explorer de oplossing GettingStarted (bovenste knooppunt) en selecteer vervolgens Nieuw project toevoegen>in het snelmenu.

    4. Selecteer in het venster Nieuw project toevoegen aan de linkerkant de categorie Windows Desktop onder Visual C# of Visual Basic.

    5. Selecteer de sjabloon Console-app (.NET Framework) en voer GettingStartedClient in voor de naam. Selecteer OK.

  2. Voeg een verwijzing toe in het Project GettingStartedClient aan de System.ServiceModel assembly:

    1. Selecteer in het venster Solution Explorer de map Verwijzingen onder het project GettingStartedClient en selecteer vervolgens Verwijzing toevoegen in het snelmenu.

    2. Selecteer Framework in het venster Verwijzing toevoegen onder Assembly's aan de linkerkant van het venster.

    3. Zoek en selecteer System.ServiceModel en kies VERVOLGENS OK.

    4. Sla de oplossing op door Bestand>opslaan te selecteren.

  3. Voeg een servicereferentie toe aan de rekenmachineservice:

    1. Selecteer in het venster Solution Explorer de map Verwijzingen onder het project GettingStartedClient en selecteer vervolgens Serviceverwijzing toevoegen in het snelmenu.

    2. Selecteer Ontdekken in het venster Servicereferentie toevoegen.

      De CalculatorService-service wordt gestart en Visual Studio geeft deze weer in het vak Services .

    3. Selecteer CalculatorService om deze uit te vouwen en de servicecontracten weer te geven die door de service zijn geïmplementeerd. Laat de standaardnaamruimtestaan en kies OK.

      Visual Studio voegt een nieuw item toe onder de map Verbinding maken ed Services in het project GettingStartedClient.

Hulpprogramma voor servicemodelmetagegevens

In de volgende voorbeelden ziet u hoe u het hulpprogramma ServiceModel Metadata Utility (Svcutil.exe) kunt gebruiken om het proxyklassebestand te genereren. Met dit hulpprogramma worden het proxyklassebestand en het App.config-bestand gegenereerd. In de volgende voorbeelden ziet u hoe u de proxy genereert in respectievelijk C# en Visual Basic:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/GettingStarted/CalculatorService
svcutil.exe /language:vb /out:generatedProxy.vb /config:app.config http://localhost:8000/GettingStarted/CalculatorService

Clientconfiguratiebestand

Nadat u de client hebt gemaakt, maakt Visual Studio het configuratiebestand App.config in het Project GettingStartedClient . Dit moet er ongeveer uitzien als in het volgende voorbeeld:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <!-- specifies the version of WCF to use-->
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <system.serviceModel>
            <bindings>
                <!-- Uses wsHttpBinding-->
                <wsHttpBinding>
                    <binding name="WSHttpBinding_ICalculator" />
                </wsHttpBinding>
            </bindings>
            <client>
                <!-- specifies the endpoint to use when calling the service -->
                <endpoint address="http://localhost:8000/GettingStarted/CalculatorService"
                    binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICalculator"
                    contract="ServiceReference1.ICalculator" name="WSHttpBinding_ICalculator">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
            </client>
        </system.serviceModel>
    </configuration>

In de <sectie system.serviceModel> ziet u het <eindpuntelement>. Het <eindpuntelement> definieert het eindpunt dat de client gebruikt voor toegang tot de service als volgt:

  • Adres: http://localhost:8000/GettingStarted/CalculatorService. Het adres van het eindpunt.
  • Servicecontract: ServiceReference1.ICalculator. Het servicecontract verwerkt de communicatie tussen de WCF-client en de service. Visual Studio heeft dit contract gegenereerd toen u de functie Servicereferentie toevoegen gebruikte. Het is in wezen een kopie van het contract dat u hebt gedefinieerd in het Project GettingStartedLib.
  • Binding: WSHttpBinding. De binding specificeert HTTP als transport, interoperabele beveiliging en andere configuratiedetails.

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Maak en configureer een console-app-project voor de WCF-client.
  • Voeg een servicereferentie toe aan de WCF-service om de proxyklasse en configuratiebestanden voor de clienttoepassing te genereren.

Ga naar de volgende zelfstudie voor meer informatie over het gebruik van de gegenereerde client.