C# WCF-来自另一个程序集的服务合约

C# WCF-来自另一个程序集的服务合约,c#,wcf,assemblies,C#,Wcf,Assemblies,从上周开始,我一直在用谷歌搜索答案,但什么也没找到。也许我只是用不正确的关键词搜索 基本上,我们有一个正在运行的WCF服务,然后我们有一个单独的dll,其中包含另一个ServiceContract。我们想知道是否可以在当前运行的服务中公开单独的dll,如果可以,如何公开 我们还是WCF的新手,如果这是一个愚蠢的问题,请原谅( 我们正在使用.NET3.5SP1和C 问候 编辑: 我们希望将我们的服务分为“模块”。因此,服务实现(方法、ect)和契约(接口)都在单独的库中。因此,假设您有一个名为“客

从上周开始,我一直在用谷歌搜索答案,但什么也没找到。也许我只是用不正确的关键词搜索

基本上,我们有一个正在运行的WCF服务,然后我们有一个单独的dll,其中包含另一个ServiceContract。我们想知道是否可以在当前运行的服务中公开单独的dll,如果可以,如何公开

我们还是WCF的新手,如果这是一个愚蠢的问题,请原谅(

我们正在使用.NET3.5SP1和C

问候

编辑:
我们希望将我们的服务分为“模块”。因此,服务实现(方法、ect)和契约(接口)都在单独的库中。因此,假设您有一个名为“客户端”的模块。我们希望与客户端相关的所有内容都在同一个单独的库(DLL)中而不是一个从多个接口继承的大型基类。这是一个庞大的服务,我们需要多个开发人员同时处理同一服务的不同部分。这是我被指示要解决的问题,但如果可以做到,那么就不能。我希望当您使用另一个程序集时,这会变得更合理(dll)作为“main”项目中的引用,然后将using指令添加到WCF服务实例化的文件中。然后,您可以简单地使用引用的服务契约来设置具有正确端点和绑定(配置)的运行服务.

假设您询问如何在单独的DLL/应用程序中运行的服务中实现在一个DLL中声明的服务契约:

编辑以匹配后期编辑

  • 向包含服务的应用程序添加对具有服务协定的DLL的引用
  • 在带有服务实现的.cs文件中,为服务约定的命名空间添加一个using语句
  • 从服务契约派生服务(如果您将服务契约定义为具体类而不是接口,并且希望在服务上公开多个契约,那么您将遇到问题
  • 如果是自宿主,则创建一个ServiceHost,在另一个程序集中传递服务的type对象;如果是IIS宿主,则创建一个.svc文件,将另一个程序集中的类引用为服务
  • 在配置文件中添加一个服务元素,命名服务的完全限定名
  • 在新合同的唯一地址向服务添加端点

  • 我想一个解决办法是你有一个主服务主机托管你的WCFMainLib,然后你的所有客户端都会连接到WCFMainLib

    然后,WCFMainLib像一个代理一样连接到本地主机(或其他服务器)上的所有其他WCFModuleLib以获取数据

    WCFMainlib将实现IWCFModuleLib1、IWCFModuleLib2等服务契约接口,并将它们公开给WCFClient。然后,接口的实际实现将是对实际WCFmodulelib的调用

    这可能会带来一些开销,但总的来说也会引入一些“功能”,这些功能可能会使您的上司或服务可用性受益


    或者,如果您只是想委托编程工作,您可以告诉每个团队使用分部类为您的WCFLib使用分部类,并在分部类上使用每个服务合约,然后每晚进行编译。

    您能否澄清“在当前运行的服务中公开单独的dll”的含义,就这样我们在同一页上?我们想把我们的服务分成“模块”。所以服务实现(方法,等等)和契约(接口)都在不同的库中。所以让我们假设你有一个名为“客户端”的模块。我们希望与客户端相关的所有内容都在同一个单独的库(DLL)中而不是一个从多个接口继承的大型基类。这是一个庞大的服务,我们需要多个开发人员同时处理同一服务的不同部分。这是我被指示要解决的问题,但如果可以做到,那么就不能。我希望这更合理??我希望在单独的dll中也有4个。参见my编辑我的问题。我们需要向客户端项目添加多个服务引用吗?我的老板想要一个由多个模块组成的单一服务,但您只能指定一个命名空间和类(服务)在.svc文件中。因此,我假设我的老板想要的东西无法实现。我遇到过关于如何在ASP.NET、动态托管和虚拟.svc文件中托管WCF的帖子,但我不能有一个由多个dll组成的单一服务。不过,感谢您的回复。每个服务都需要一个单独的.svc文件,虚拟或其他。您可以有许多c由单个服务实现的契约,但您将服务引用设置为该服务-多个服务需要多个服务引用。但是,您可以使用“服务”在其他DLL中,仅作为实现,并创建一个包装器服务,该服务实现所有服务契约,但只转发到其他DLL中的单独实现-这将需要一个服务引用