Web服务客户端类型转换

时间:2011-10-17 11:15:11

标签: c# .net web-services

这是我第一次使用.net,所以问题可以很简单。我有Web服务的Web方法:

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

            if (Number > 0 && 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;
        }

我为这个Web服务创建了客户端:

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

我在Web服务和Web客户端中声明了结构日期类型:

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

现在我收到了Cleint中的错误:

Error   1   Cannot convert type 'ConsoleApplication1.LocalService.ClientData[]' to 'ConsoleApplication1.ClientData[]'   C:\Users\ademidov\documents\visual studio 2010\Projects\WebService1\ConsoleApplication1\Program.cs  22  36  ConsoleApplication1

我该如何解决?

1 个答案:

答案 0 :(得分:2)

试试这个:

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

可能发生的情况是您可能已在自己的代码中再次声明了ClientData,但这不是服务返回的定义。因此,您需要使用服务使用的相同数据类型获取数据。因此我们使用了LocalService.ClientData类。

这只是意味着我们想在LocalService命名空间中使用ClientData类,该命名空间包含有关服务对象的详细信息。