0
我在我的应用程序中添加了两个WCF服务。这两个服务都有一个名为X的对象,它是同一个对象。具有相同对象的WCF服务
问题是在我的应用程序中添加引用后,我得到两个不同的对象,具有相同的确切结构,但具有不同的名称空间。 这会阻止我在它们之间进行投射,并迫使我创建两个不同的对象,每个服务对应一个对象。
请注意我不想使用dll的。
我在我的应用程序中添加了两个WCF服务。这两个服务都有一个名为X的对象,它是同一个对象。具有相同对象的WCF服务
问题是在我的应用程序中添加引用后,我得到两个不同的对象,具有相同的确切结构,但具有不同的名称空间。 这会阻止我在它们之间进行投射,并迫使我创建两个不同的对象,每个服务对应一个对象。
请注意我不想使用dll的。
请注意我不想使用dll的。
您将不得不。当您生成WCF代理时,您可以选择重用引用程序集中的类型。这有是包含服务也使用的类型的程序集。另见How to: Configure a Service to Reuse Existing Types。
当然,@Franck在评论中指出,可能会干预序列化过程。您也可以使用像AutoMapper这样的工具。
更有趣的是你的实际问题:为什么你不想使用DLL引用?你有没有尝试过,但是你是否想要部署一个单一文件应用程序,然后merge the assembly in your executable。
他不必这样做。当你反序列化时,你只需要从格式中删除命名空间。我在上一份工作中使用了一堆自定义对象,并且只有1到5行代码。 SerializationBinder:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializationbinder.aspx – Franck
是的,但添加自定义(德)序列化是一个愚蠢的事情时添加一个DLL引用是两次点击'值得并将更加优雅地解决问题。 OP更好地解释**为什么**他不想这样做。 – CodeCaster
我只想使用服务并在需要时更新它。我不想要DLL,所以我不需要为第三方所做的每一项更改都获得一个新文件。 –