Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Средство dotnet-svcutil для Windows Communication Foundation (WCF) — это средство .NET, которое извлекает метаданные из веб-службы в сетевом расположении или из WSDL-файла и создает класс WCF, содержащий методы прокси-сервера клиента, которые обращаются к операциям веб-службы.
Аналогично инструменту метаданных модели службы svcutil для проектов .NET Framework, dotnet-svcutil — это инструмент командной строки для генерации ссылки на веб-службу, совместимой с проектами .NET.
Средство dotnet-svcutil является альтернативой подключенному поставщику служб Visual Studio WCF Web Service Reference. В качестве инструмента .NET кроссплатформенный инструмент dotnet-svcutil доступен на Linux, macOS и Windows.
Это важно
Следует ссылаться только на службы из надежного источника. Добавление ссылок из ненадежного источника может компрометировать безопасность.
Предпосылки
- Последняя версия .NET SDK
- Ваш любимый редактор кода
Начало работы
В следующем примере описаны шаги, необходимые для добавления ссылки на веб-службу в веб-проект .NET и вызова службы. Вы создадите веб-приложение .NET с именем HelloSvcutil и добавьте ссылку на веб-службу, реализующую следующий контракт:
[ServiceContract]
public interface ISayHello
{
[OperationContract]
string Hello(string name);
}
В этом примере предположим, что веб-служба будет размещена по следующему адресу: http://contoso.com/SayHello.svc
В командном окне Windows, macOS или Linux выполните следующие действия:
Создайте каталог HelloSvcutil для проекта и сделайте его текущим каталогом, как показано в следующем примере:
mkdir HelloSvcutil cd HelloSvcutilСоздайте веб-проект C# в этом каталоге с помощью следующей
dotnet newкоманды:dotnet new webdotnet-svcutilУстановите пакет NuGet в качестве средства командной строки:dotnet tool install --global dotnet-svcutilВыполните команду dotnet-svcutil , чтобы создать файл ссылки на веб-службу следующим образом:
dotnet-svcutil http://contoso.com/SayHello.svc
Созданный файл сохраняется как HelloSvcutil/ServiceReference/Reference.cs. Средство dotnet-svcutil также добавляет в проект соответствующие пакеты WCF, необходимые прокси-коду в качестве ссылок на пакеты.
Использование ссылки на сервис
Восстановите пакеты WCF с помощью
dotnet restoreкоманды следующим образом:dotnet restoreНайдите имя клиентского класса и операции, которую вы хотите использовать.
Reference.csбудет содержать класс, который наследуется отSystem.ServiceModel.ClientBase, с методами, которые можно использовать для вызова операций на службе. В этом примере, вы хотите вызвать операцию Hello службы SayHello.ServiceReference.SayHelloClient— имя клиентского класса и вызывает методHelloAsync, который можно использовать для вызова операции.Откройте находящийся в редакторе файл
Startup.csи добавьте директивуusingдля пространства имен ссылки на службу в самом верху.using ServiceReference;Измените
Configureметод для вызова веб-службы. Для этого создайте экземпляр класса, который наследуется отClientBase, и вызовите метод в клиентском объекте.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); }); }Запустите приложение с помощью следующей
dotnet runкоманды:dotnet runПерейдите по URL-адресу, указанному в консоли (например,
http://localhost:5000) в веб-браузере.
Вы увидите следующие выходные данные: "Привет dotnet-svcutil!"
Для подробного dotnet-svcutil описания параметров средства вызовите средство, передав параметр справки следующим образом:
dotnet-svcutil --help
Обновление ссылки на службу
Если веб-служба изменяется, можно обновить ссылку на службу, чтобы отразить эти изменения. Параметр -u обновляет созданный код на основе метаданных из конечной точки службы или WSDL-файла.
Чтобы обновить существующую ссылку на службу, выполните указанные действия.
dotnet-svcutil -u ./path/to/reference/folder
Папка с ссылками должна содержать файл ConnectedService.json, созданный при начальном добавлении службы. Средство считывает этот файл конфигурации, чтобы определить конечную точку службы и повторно создать прокси-код с обновленными метаданными.
Отзывы и вопросы
Если у вас есть вопросы или отзывы, откройте проблему на сайте GitHub. Вы также можете просмотреть все существующие вопросы или проблемы в репозитории WCF на GitHub.
Примечания к релизу
- Ознакомьтесь с заметками о выпуске для обновленных сведений о выпуске, включая известные проблемы.