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
- Zestaw .NET Core 2.1 SDK lub nowsze wersje
- Twój ulubiony edytor kodu
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:
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
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
Zainstaluj pakiet NuGet jako narzędzie interfejsu
dotnet-svcutil
wiersza polecenia:dotnet tool install --global dotnet-svcutil
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
Przywróć pakiety WCF przy użyciu polecenia w
dotnet restore
następujący sposób:dotnet restore
Znajdź nazwę klasy klienta i operacji, której chcesz użyć.
Reference.cs
będzie zawierać klasę dziedziczą zSystem.ServiceModel.ClientBase
klasy , 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 nazwieHelloAsync
, która może służyć do wywoływania operacji.Startup.cs
Otwórz plik w edytorze i dodaj dyrektywęusing
dla przestrzeni nazw odwołania do usługi u góry:using ServiceReference;
Edytuj metodę
Configure
, aby wywołać usługę internetową. W tym celu należy utworzyć wystąpienie klasy dziedziczonej iClientBase
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); }); }
Uruchom aplikację przy użyciu
dotnet run
polecenia w następujący sposób:dotnet run
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.