2014-02-25 69 views
3

你好,我有一个有一个参数类Web服务传递参数类

[WebMethod] 
    public int Customers(Customer _customers) 
    { 

     Customer getCustomer = new Customer(); 
     getCustomer.ID = _customers.ID; 
     getCustomer.FirstName = _customers.FirstName; 
     getCustomer.LastName = _customers.LastName; 

     return 0; 
    } 

现在我有一个C#控制台应用程序调用Web服务

 ServiceReference1.WebService1SoapClient _client = new WebService1SoapClient(); 

     Customer _customers = new Customer(); 
     _customers.ID = 1; 
     _customers.FirstName = "FirstName"; 
     _customers.LastName = "LAstName"; 

     _client.Customers(_customers); 

一个_client.Customers(_customers);我有一个错误的网络服务

“无法从'客户'转换为'WRTC_BACKUPDB.ServiceReference1.Customer'”

回答

3

看来你对客户端

更改

Customer _customers = new Customer(); 

var _customers = new WRTC_BACKUPDB.ServiceReference1.Customer(); 

应该解决这2个Customer类,但你也应该确定其他地方Customer班来自。

可能是控制台客户端在添加Service Reference时既有代理向导创建的Customer类,也直接引用服务器组件上使用的原始Customer类。如果您希望在客户端和服务器之间共享同一个类,则可以在Service Reference向导中重新使用类型。

(也可从命名规则来看,我也会改变变量名_customer

+0

我只有1 Customer类。 – user2530748

+1

'WRTC_BACKUPDB.ServiceReference1.Customer'是'ServiceReference1.WebService1SoapClient.Customers(...)'预期的类型。如果客户端'客户'是这种类型的,你不会收到错误。另外请注意,在实例化'WRTC_BACKUPDB.ServiceReference1.Customer'时编辑w.r.t var/full类型。 – StuartLC

+1

谢谢它的作品! – user2530833