Udostępnij za pośrednictwem


Narzędzie WCF dotnet-svcutil dla platformy .NET Core

Narzędzie dotnet-svcutil programu Windows Communication Foundation (WCF) to narzędzie platformy .NET, które pobiera metadane z usługi internetowej w lokalizacji sieciowej lub z pliku WSDL i generuje klasę WCF zawierającą metody serwera proxy klienta, które uzyskują dostęp do operacji usługi internetowej.

Podobnie jak w przypadku metadanych modelu usług — narzędzie svcutil dla projektów .NET Framework, dotnet-svcutil to narzędzie wiersza polecenia służące do generowania odwołania do usługi internetowej zgodnej z projektami .NET Core i .NET Standard.

Narzędzie dotnet-svcutil jest alternatywną opcją dla dostawcy połączonej usługi programu Visual Studio w wersji 15.5 w wersji 15.5 w programie WCF. Narzędzie dotnet-svcutil jako narzędzie platformy .NET jest dostępne międzyplatformowo w systemach Linux, macOS i Windows.

Ważne

Należy odwoływać się tylko do usług z zaufanego źródła. Dodanie odwołań z niezaufanego źródła może naruszyć bezpieczeństwo.

Wymagania wstępne

Wprowadzenie

W poniższym przykładzie przedstawiono kroki wymagane do dodania odwołania usługi internetowej do projektu internetowego platformy .NET Core i wywołania usługi. Utworzysz aplikację internetową platformy .NET Core o nazwie HelloSvcutil i dodasz odwołanie do usługi internetowej, która implementuje następujący kontrakt:

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

W tym przykładzie załóżmy, że usługa internetowa będzie hostowana pod następującym adresem: http://contoso.com/SayHello.svc

W oknie poleceń systemu Windows, macOS lub Linux wykonaj następujące kroki:

  1. Utwórz katalog o nazwie HelloSvcutil dla projektu i ustaw go jako bieżący katalog, jak w poniższym przykładzie:

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. Utwórz nowy projekt internetowy języka C# w tym katalogu przy użyciu dotnet new polecenia w następujący sposób:

    dotnet new web
    
  3. Zainstaluj pakiet NuGet jako narzędzie interfejsu dotnet-svcutil wiersza polecenia:

    dotnet tool install --global dotnet-svcutil
    
  4. Uruchom polecenie dotnet-svcutil, aby wygenerować plik referencyjny usługi internetowej w następujący sposób:

    dotnet-svcutil http://contoso.com/SayHello.svc
    

Wygenerowany plik jest zapisywany jako HelloSvcutil/ServiceReference/Reference.cs. Narzędzie dotnet-svcutil dodaje również do projektu odpowiednie pakiety WCF wymagane przez kod serwera proxy jako odwołania do pakietu.

Korzystanie z dokumentacji usługi

  1. Przywróć pakiety WCF przy użyciu polecenia w dotnet restore następujący sposób:

    dotnet restore
    
  2. Znajdź nazwę klasy klienta i operacji, której chcesz użyć. Reference.cs będzie zawierać klasę dziedziczą z System.ServiceModel.ClientBaseklasy , z metodami, których można użyć do wywoływania operacji w usłudze. W tym przykładzie chcesz wywołać operację Hello usługi SayHello. ServiceReference.SayHelloClient jest nazwą klasy klienta i ma metodę o nazwie HelloAsync , która może służyć do wywoływania operacji.

  3. Startup.cs Otwórz plik w edytorze i dodaj dyrektywę using dla przestrzeni nazw odwołania do usługi u góry:

    using ServiceReference;
    
  4. Edytuj metodę Configure , aby wywołać usługę internetową. W tym celu należy utworzyć wystąpienie klasy dziedziczonej i ClientBase wywołując metodę w obiekcie klienta:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        app.Run(async (context) =>
        {
            var client = new SayHelloClient();
            var response = await client.HelloAsync();
            await context.Response.WriteAsync(response);
        });
    }
    
    
  5. Uruchom aplikację przy użyciu dotnet run polecenia w następujący sposób:

    dotnet run
    
  6. Przejdź do adresu URL wymienionego w konsoli (na przykład http://localhost:5000) w przeglądarce internetowej.

Powinny zostać wyświetlone następujące dane wyjściowe: "Hello dotnet-svcutil!"

Aby uzyskać szczegółowy opis dotnet-svcutil parametrów narzędzia, wywołaj narzędzie przekazujące parametr pomocy w następujący sposób:

dotnet-svcutil --help

Opinie i pytania

Jeśli masz jakiekolwiek pytania lub opinie, otwórz problem w usłudze GitHub. Możesz również przejrzeć wszelkie istniejące pytania lub problemy w repozytorium WCF w witrynie GitHub.

Informacje o wersji

  • Zapoznaj się z informacjami o wersji, aby uzyskać zaktualizowane informacje o wersji, w tym znane problemy.

Informacja