2013-10-24 117 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,所以我不需要为第三方所做的每一项更改都获得一个新文件。 –

相关问题