#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, который содержит сведения об объектах сервиса.