2013-10-24 156 views
0

我在我的應用程序中添加了兩個WCF服務。這兩個服務都有一個名爲X的對象,它是同一個對象。具有相同對象的WCF服務

問題是在我的應用程序中添加引用後,我得到兩個不同的對象,具有相同的確切結構,但具有不同的名稱空間。 這會阻止我在它們之間進行投射,並迫使我創建兩個不同的對象,每個服務對應一個對象。

請注意我不想使用dll的。

回答

1

請注意我不想使用dll的。

您將不得不。當您生成WCF代理時,您可以選擇重用引用程序集中的類型。這是包含服務也使用的類型的程序集。另見How to: Configure a Service to Reuse Existing Types

當然,@Franck在評論中指出,可能會干預序列化過程。您也可以使用像AutoMapper這樣的工具。

更有趣的是你的實際問題:爲什麼你不想使用DLL引用?你有沒有嘗試過,但是你是否想要部署一個單一文件應用程序,然後merge the assembly in your executable

+1

他不必這樣做。當你反序列化時,你只需要從格式中刪除命名空間。我在上一份工作中使用了一堆自定義對象,並且只有1到5行代碼。 SerializationBinder:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationbinder.aspx – Franck

+1

是的,但添加自定義(德)序列化是一個愚蠢的事情時添加一個DLL引用是兩次點擊'值得並將更加優雅地解決問題。 OP更好地解釋**爲什麼**他不想這樣做。 – CodeCaster

+0

我只想使用服務並在需要時更新它。我不想要DLL,所以我不需要爲第三方所做的每一項更改都獲得一個新文件。 –

相關問題