2017-04-25 92 views
-4

我的团队旨在执行我们的REST API WCF系统的重构,因为当前体系结构不足。我们希望将现有的WCF服务划分为代表应用程序实际业务环境的模块。 据我所知,一个单一的服务(意味着一个单一的.svc文件)只能有一个契约接口的实现 - 可以有多个契约,但它们必须全部由同一个类来实现。WCF服务 - 多个合同执行

重构背后的想法是将现有的WCF分成负责特定业务上下文的功能块(模块),并将它们中的每一个作为不是WCF服务的普通.dll在单独项目中实现。它们将全部“链接”在一个“核心”WCF服务中 - 最有可能在app.config中定义或由DI容器注入为普通依赖项。因此,每个项目都将包含一个契约接口(具有所有WCF装饰属性)及其实现应用于特定模块。

不幸的是,这个想法不会工作,因为第一段描述的问题 - 每个服务的一个实现。将实现创建为部分类的想法将不起作用 - 模块必须是单独的项目 - 部分不会工作。对于evry模块而言,单独的WCF服务也不是一种可行的方式 - 对于FE来说,变更需要透明化,而且我们有这样的服务,这意味着几个现有的服务x 5-6上下文 - 没办法。

有没有人有这种方法的WCF经验?顺便说一句,用别的替换WCF是一个问题。

Regards

回答

0

制作一些适配器类。

每个适配器都会引用一个服务接口并将请求转发给实际的类。

+0

谢谢。但是这个想法是核心服务对模块的合同和实施一无所知 – user1658223