自上周以来,我一直试着谷歌搜索答案,但没有找到任何答案。也许我只是用不正确的关键词搜索......
基本上,我们有一个正在运行的WCF服务,然后我们有一个单独的dll,其中包含另一个ServiceContract。我们想知道是否有可能在当前正在运行的服务中公开单独的dll,如果可以,如何?
我们还是WCF的新手,所以请原谅这是一个愚蠢的问题。 :(
我们正在使用.NET 3.5 SP1和C#。
此致
编辑: 我们希望将我们的服务分为“模块”。因此,服务实现(方法,等)和合同(接口)都在不同的库中。因此,假设您有一个名为“客户端”的模块。我们希望与客户端相关的所有内容都位于同一个独立的库(DLL)中,而不是从多个接口继承的一个大的基类。这是一项庞大的服务,我们需要多个开发人员同时处理同一服务的不同部分。这是我被指示要弄清楚的,但是如果它可以做到那么它就不能。我希望这会让人更加敏感吗?
答案 0 :(得分:4)
假设您在询问如何在单独的DLL / Application中运行的服务中实现在一个DLL中声明的服务契约:
编辑以匹配帖子编辑
答案 1 :(得分:1)
当您将另一个程序集(dll)作为“main”项目中的引用时,然后将using指令添加到实例化WCF服务的文件中。然后,您可以简单地使用引用的服务协定来设置具有正确端点和绑定(配置)的正在运行的服务。
答案 2 :(得分:0)
我想一个解决方法是你有一个主要的ServiceHost托管你的WCFMainLib,然后你的所有客户端将连接到WCFMainLib。
然后,WCFMainLib就像一个代理,连接到localhost(或其他服务器)上的所有其他WCFModuleLib以获取数据。
WCFMainlib将实现IWCFModuleLib1,IWCFModuleLib2等服务契约接口,并将它们公开给WCFClient。接口的实际实现将是对实际WCFModuleLibs的调用。
这可能会带来一些开销,但总体而言还会引入一些可能使老板或服务可用性受益的“功能”。
或者,如果您只是想委派编程工作,也许您可以告诉每个团队使用部分类的每个服务合同为WCFLib处理部分类,然后进行夜间编译。