在多个 WCF 服务之间共享类

Posted

技术标签:

【中文标题】在多个 WCF 服务之间共享类【英文标题】:Sharing classes between multiple WCF services 【发布时间】:2011-09-03 18:46:36 【问题描述】:

我有两个 WCF 服务,一个用于读取操作,另一个用于写入操作。

虽然它们执行不同的操作,但它们都共享相同的类(通过对支持问题模型的其他项目的 DLL 引用)。

我的问题是,当我尝试将这两个服务添加到我的 C# 项目时,我无法共享同一个命名空间:

无法使用命名空间“X”创建服务引用,因为名称 已被现有服务引用、文件夹或文件使用

如果服务放在不同的命名空间中,类就会不同,重复的代码会增加很多。

有什么解决办法吗?

版本:非常类似于:Two WCF services with different contracts but same business objects。反正没有解决办法。

【问题讨论】:

感谢 Gert,很抱歉,但出现错误“无法使用命名空间 'X' 创建服务引用,因为该名称已被现有服务引用、文件夹或文件使用”。该选项在 VS2010 中默认提供 编辑后,该帖子的solution 是否适合您? 【参考方案1】:

如果您使用 VS 2010(可能也适用于 2008),请单击“添加服务引用”窗口中的高级按钮并使用“在指定的引用程序集中重用类型”。根据您的项目的外观,您可能必须将生成的类型移动到其他程序集。

【讨论】:

感谢 pg0xC,但出现错误“无法使用命名空间 'X' 创建服务引用,因为该名称已被现有服务引用、文件夹或文件使用”。选择“在所有引用的程序集中重用类型”或“在指定的引用程序集中重用类型”都没有关系。还是失败了

以上是关于在多个 WCF 服务之间共享类的主要内容,如果未能解决你的问题,请参考以下文章

在 WCF 服务及其 .net 客户端之间共享类型

如何为具有共享类型的多个 WCF 服务生成客户端代码

WCF net.tcp 绑定:托管多个服务是不是需要端口共享?

在 ASP.NET MVC 3 中的多个服务之间共享一个工作单元

TestNG,Selenium 如何在多个类之间共享对象

net.tcp协议共享tcp端口的功能