2009-10-24 73 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