2012-11-06 91 views
1

我試圖調用,它返回一個公司調用從Web服務錯誤

GetCompanyCommand companyRef = new GetCompany(); 

的ID的Web服務方法的參數的方法,但我在已經存在的Web服務和方法構造函數有一個參數

public GetCompanyCommand(Guid actCompanyId) 
    { 
     this.actCompanyId = actCompanyId; 

    } 

的問題是,當我去更新Web服務引用我正在呈現,指出該方法不能序列化,因爲它不包含參數構造一個錯誤。

現在有沒有辦法讓我解決這個問題而不改變現有的構造函數?因爲許多其他方法已經調用它。

+1

只需將一個無參數構造函數添加到您的服務類.... –

回答

2

如果你的web服務類有一個帶參數的構造函數,它應該有無參數的構造函數。像

public GetCompany() 
{ 

} 

這是XmlSerializer的限制。請注意,BinaryFormatterDataContractSerializer不需要此操作 - 它們可以從ether中創建一個未初始化的對象,並在反序列化過程中初始化它。

在對象的de-serialization期間,負責解序列化對象的類創建序列化類的instance,然後繼續填充序列化字段和屬性,僅在獲取要填充的實例後才填充序列化字段和屬性。

+0

當我使用空無參數構造函數時,然後出現錯誤: _cannot serialise成員System.Exception.Data類型System.Collection.Dictionary,因爲它實現了IDictionary_ ??? – dizzytri99er

+0

@ dizzytri99er這個異常不涉及你的第一個,它的另一個問題 – Talha

+1

@ dizzytri99er chk這個線程... http://stackoverflow.com/questions/1363894/how-to-serialize-idictionary – Talha