Kurz: Vytvoření klienta Windows Communication Foundation

Tento kurz popisuje čtvrtý z pěti úloh potřebných k vytvoření základní aplikace WCF (Windows Communication Foundation). Přehled kurzů najdete v tématu Kurz: Začínáme s aplikacemi Windows Communication Foundation.

Další úlohou vytvoření aplikace WCF je vytvoření klienta načtením metadat ze služby WCF. Pomocí sady Visual Studio přidáte odkaz na službu, která získá metadata z koncového bodu MEX služby. Visual Studio pak vygeneruje soubor spravovaného zdrojového kódu pro proxy klienta v jazyce, který jste vybrali. Vytvoří také konfigurační soubor klienta (App.config). Tento soubor umožňuje klientské aplikaci připojit se ke službě v koncovém bodu.

Poznámka:

Pokud voláte službu WCF z projektu knihovny tříd v sadě Visual Studio, použijte funkci Přidat odkaz služby k automatickému vygenerování proxy a přidruženého konfiguračního souboru. Vzhledem k tomu, že projekty knihovny tříd tento konfigurační soubor nepoužívají, musíte přidat nastavení do vygenerovaného konfiguračního souboru do souboru App.config spustitelného souboru, který volá knihovnu tříd.

Poznámka:

Jako alternativu použijte nástroj ServiceModel Metadata Utility místo sady Visual Studio k vygenerování třídy proxy a konfiguračního souboru.

Klientská aplikace používá vygenerovanou třídu proxy ke komunikaci se službou. Tento postup je popsaný v kurzu: Použití klienta.

V tomto kurzu se naučíte:

  • Vytvořte a nakonfigurujte projekt konzolové aplikace pro klienta WCF.
  • Přidejte do služby WCF odkaz na službu, aby se vygenerovala třída proxy a konfigurační soubory.

Vytvoření klienta Windows Communication Foundation

  1. Vytvoření projektu konzolové aplikace v sadě Visual Studio:

    1. V nabídce Soubor vyberte Otevřít>projekt nebo řešení a přejděte k dříve vytvořenému řešení GettingStarted (GettingStarted.sln). Vyberte Otevřít.

    2. V nabídce Zobrazení vyberte Průzkumník řešení.

    3. V okně Průzkumník řešení vyberte řešení GettingStarted (horní uzel) a pak v místní nabídce vyberte Přidat>nový projekt.

    4. V okně Přidat nový projekt na levé straně vyberte kategorii Plocha Systému Windows v části Visual C# nebo Visual Basic.

    5. Vyberte šablonu konzolové aplikace (.NET Framework) a jako název zadejte GettingStartedClient. Vyberte OK.

  2. Do sestavení přidejte odkaz v projektu System.ServiceModel GettingStartedClient:

    1. V okně Průzkumník řešení vyberte složku Reference v projektu GettingStartedClient a pak v místní nabídce vyberte Přidat odkaz.

    2. V okně Přidat odkaz v části Sestavení na levé straně okna vyberte Framework.

    3. Vyhledejte a vyberte System.ServiceModel a pak zvolte OK.

    4. Řešení uložte výběrem možnosti Uložit>vše.

  3. Přidejte odkaz na službu kalkulačky:

    1. V okně Průzkumník řešení vyberte složku Reference v projektu GettingStartedClient a pak v místní nabídce vyberte Přidat odkaz na službu.

    2. V okně Přidat odkaz na službu vyberte Zjistit.

      Spustí se služba CalculatorService a Sada Visual Studio ji zobrazí v poli Služby .

    3. Výběrem možnosti CalculatorService ji rozbalíte a zobrazíte kontrakty služeb implementované službou. Ponechte výchozí obor názvů a zvolte OK.

      Visual Studio přidá novou položku do složky Připojení ed Services v projektu GettingStartedClient.

Nástroj ServiceModel Metadata Utility

Následující příklady ukazují, jak volitelně použít nástroj ServiceModel Metadata Utility (Svcutil.exe) k vygenerování souboru třídy proxy. Tento nástroj vygeneruje soubor třídy proxy a soubor App.config . Následující příklady ukazují, jak vygenerovat proxy server v jazyce C# a 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

Konfigurační soubor klienta

Po vytvoření klienta vytvoří Visual Studio konfigurační soubor App.config v projektu GettingStartedClient , který by se měl podobat následujícímu příkladu:

    <?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>

<V části system.serviceModel> si všimněte elementu koncového <bodu>. Element <koncového bodu> definuje koncový bod, který klient používá pro přístup ke službě následujícím způsobem:

  • Adresa: http://localhost:8000/GettingStarted/CalculatorService. Adresa koncového bodu.
  • Servisní smlouva: ServiceReference1.ICalculator. Kontrakt služby zpracovává komunikaci mezi klientem WCF a službou. Visual Studio vygeneroval tento kontrakt, když jste použili funkci Přidat odkaz na službu. Jedná se v podstatě o kopii kontraktu, kterou jste definovali v projektu GettingStartedLib.
  • Vazba: WSHttpBinding. Vazba určuje protokol HTTP jako přenos, interoperabilní zabezpečení a další podrobnosti konfigurace.

Další kroky

V tomto kurzu jste se naučili, jak:

  • Vytvořte a nakonfigurujte projekt konzolové aplikace pro klienta WCF.
  • Přidejte odkaz na službu WCF, která vygeneruje třídu proxy a konfigurační soubory pro klientskou aplikaci.

V dalším kurzu se dozvíte, jak používat vygenerovaného klienta.