Использовать веб-сервис через URL WSDL - PullRequest
0 голосов
/ 29 января 2019

Мне нужно использовать веб-сервис, используя URL-адрес wsdl, после поиска в Интернете я сгенерировал библиотеку классов с помощью командной строки wsdl.exe , затем создал экземпляр класса и отправил параметр с объектомиз класса, но я получаю эту ошибку !!

enter image description here

Также я сгенерировал dll library из URL-адреса wsdl и использовал его в консольном проекте, но я получаю ту же ошибку.

namespace ConsoleProject
{
    class Program
    {
        static void Main(string[] args)
        {

            Services.Service obj = new Services.Service();
            Console.WriteLine(obj.MethodName("Param1", "Param2"));
            Console.ReadLine();


        }
    }
}

исходный веб-сервис (Service.svc) и содержит много методов.

Что мне не хватает !!!любая помощь И как использовать файлы, сгенерированные мной с помощью svcutil tool (Service.cs, output.config) Мне нужно любое решение для доступа к службе.

1 Ответ

0 голосов
/ 29 января 2019

Должен быть класс [service_name]Client, сгенерированный svcutil.exe в [service_name] Service.svc .Также в output.config должна быть конфигурация для веб-сервиса.Вы можете скопировать эту конфигурацию в свой App.config , а затем использовать конструктор класса client с параметром string endPointConfigurationName (он также должен быть сгенерирован) для использования этой конфигурации.

РЕДАКТИРОВАТЬ:
Вы должны знать имя конфигурации из вашего App.config .А пока давайте предположим, что это «ConfigurationName» .Затем:

var configurationName = "ConfigurationName";
using (var client = new ServiceClient(configurationName))
{
    client.MethodName("Param1", "Param2");
}

используйте ключевое слово using для автоматического удаления объекта client.

ОБНОВЛЕНИЕ:

Если вам нужно распечатать результат метода добавленной услуги, сделайте:

var configurationName = "ConfigurationName";
using (var client = new ServiceClient(configurationName))
{
    Console.WriteLine(client.MethodName("Param1", "Param2"));
}
...