2009-10-24 74 views
1

这可能很容易,但我在这里要做的是,我试图将客户对象传递给Web服务方法。 Customer类位于Entity名称空间中,并且它是可序列化的,我将添加对ASP.NET应用程序的引用,该应用程序调用Web服务并传递Entity.Customer对象,并且还在接受Enity.Customer对象的WebService中传递。在ASP.NET Web服务上传递实体

Web服务方法

[WebMethod] 
public void AddCustomer(Entity.Customer c) 
{} 

ASP.NET的applcation

Entity.Customer c = new Entity.Customer; 
webservice.AddCustomer(c); 

错误

为“TestApplication.localhost.Service1.AddCustomer的最佳重载的方法匹配(TestApplication.localhost.Customer )'有一些无效参数

I tri编辑将Web服务更改为接受Object并稍后将该对象投射到Customer.Entity,应用程序编译但我收到了XML生成错误。

+0

你可以按F12去定义生成的AddCustomer方法并在这里粘贴声明吗? – popester 2009-10-24 19:19:18

回答

0

通常通过服务方法生成的帮助程序方法期望本地生成的对象 - 这是因为服务器端对象的某些元素没有被序列化,或者由于序列化而被稍微不同地处理。

尝试:

TestApplication.localhost.Customer c = new TestApplication.localhost.Customer(); 
webservice.AddCustomer(c); 

这种方式,您正在使用生成的对象,用正确的序列化的特性,而不是原来的对象。

1

您是否使用Visual Studio中的“添加Web引用”方法生成Web服务方法?

这是一个编译问题的权利?你的应用程序不想编译?只需转到方法的定义并确保您传递的方法定义中指定的客户对象相同 - 通常生成的Web服务方法会生成对象的代理版本,并且您需要传递完全相同的类。

+0

感谢您的回复。那正是我正在做的。我后来想到了。 – Bishal 2009-10-30 19:41:58