2010-05-13 53 views
4

我有一個序列化的POCO在.NET類庫項目一個稱爲DataUnification.ClientData.ClientInfo如何避免使用代理類的Web方法參數?

它的參數用於項目定義的Web服務:

public XmlDocument CreateNewClient(ClientInfo ci, string system) 

現在,我想打電話從項目ç此Web方法和參數使用原來的DataUnification.ClientData.ClientInfo類型。但是由於生成的代理類,它現在變成了另一種類型:WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo

至於.NET而言,這些是不一樣的類型。

我該如何解決這個問題?

回答

0

我的第一個建議是,而不是使用生成的代理手寫的代理,所以你必須完全控制其使用的類型。

我的第二個建議是使用像Web服務工廠,其中有一個選項,讓你重用現有的類時,它生成代碼的工具(如果類是適當的。)

+0

我編輯生成的代理使用POCO,它都能正常運作。不知道Web服務工廠 - 看起來很有趣。 – 2010-05-13 05:18:46

0

你可以使用automapper http://automapper.codeplex.com/從WebServices.ClientDataUnification.DataUnificationWebService.ClientInfo實例創建一個新的DataUnification.ClientData.ClientInfo。

0

可以「顯示所有文件」和生成的reference.cs的內容複製到一個新的文件,然後刪除生成的代理及其所有相關文件。

現在,在您的新reference.cs,刪除生成的DTO類,並更新所有引用。

這是一個簡短的醜陋的方式。

2

你可以只檢查「中指定引用的程序重用類型」使用原來的類型和選擇包含原始類型,同時生成代理在提前設置你的Web服務組件。

enter image description here

+0

這是這裏唯一合適的答案 – ABH 2012-07-02 12:20:00

相關問題