Приведение типа клиента веб-службы

#c# #.net #web-services

#c# #.net #веб-службы

Вопрос:

Это мой первый опыт работы с .net, поэтому вопрос может быть простым. У меня есть веб-метод веб-службы:

 [WebMethod(CacheDuration = 30,
            Description = "Returns an Array of Clients.")]
        public ClientData[] GetClientData(int Number)
        {
            ClientData[] Clients = null;

            if (Number > 0 amp;amp; Number <= 10)
            {
                Clients = new ClientData[Number];
                for (int i = 0; i < Number; i  )
                {
                    Clients[i].Name = "Client "   i.ToString();
                    Clients[i].ID = i;
                }
            }

            return Clients;
        }
  

И я создаю клиент для этой веб-службы:

    LocalService.Service1 service = new LocalService.Service1();
   String data = service.HelloWorld();
   ClientData[] clients = service.GetClientData(3);
  

Я объявил тип структуры datetype в веб-службе и веб-клиенте:

 public struct ClientData
    {
        public String Name;
        public int ID;
    }
  

Теперь я получаю ошибку в Cleint:

 Error   1   Cannot convert type 'ConsoleApplication1.LocalService.ClientData[]' to 'ConsoleApplication1.ClientData[]'   C:Usersademidovdocumentsvisual studio 2010ProjectsWebService1ConsoleApplication1Program.cs  22  36  ConsoleApplication1
  

Как я могу это исправить?

Комментарии:

1. У вас есть тип LocalService.ClientData ? Проверьте возвращаемый тип service.GetClientData(3);

Ответ №1:

Попробуйте это:

 LocalService.ClientData[] clients = service.GetClientData(3);
  

Возможно, происходит то, что вы, возможно, снова объявили clientData в своем собственном коде, но это не то определение, которое возвращается службой. Итак, вам нужно получить данные в том же типе данных, который использовался службой. Поэтому мы использовали LocalService.Класс clientData.

Это просто означает, что мы хотим использовать класс clientData в пространстве имен LocalService, который содержит сведения об объектах сервиса.