WCF服务——多合约实现

Posted

技术标签:

【中文标题】WCF服务——多合约实现【英文标题】:WCF service - multiple contract implementation 【发布时间】:2017-09-23 00:43:27 【问题描述】:

由于当前架构不足,我的团队的目标是对我们的 REST API WCF 系统进行重构。我们希望将现有的 WCF 服务划分为代表应用程序实际业务上下文的模块。 据我所知,单个服务(意味着单个 .svc 文件)只能有一个合约接口实现 - 可以有多个合约,但它们都必须由同一个类实现。

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

不幸的是,由于第一段中描述的问题 - 每个服务一个实现,这个想法不会奏效。将实现创建为部分类的想法行不通 - 模块必须是单独的项目 - 部分行不通。用于 evry 模块的单独 WCF 服务也不是可行的方法 - 更改需要对 FE 透明,我们有几个这样的服务,这意味着几个现有的服务 x 5-6 个上下文 - 没办法。

有没有人有过使用这种 WCF 方法的经验?顺便说一句,用其他东西替换 WCF 是没有问题的。

问候

【问题讨论】:

【参考方案1】:

制作一些适配器类。

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

【讨论】:

谢谢。但想法是核心服务对模块的契约和实现一无所知

以上是关于WCF服务——多合约实现的主要内容,如果未能解决你的问题,请参考以下文章

WCF 服务参考生成自己的合约接口,不会重用我的

WCF 暂停调用

现实世界中的 WCF 故障合约

XSD 第一个合约 - WCF Soap Web 服务

WCF:单个服务的多个绑定配置

在服务实现中创建 System.Windows.Control 时,WCF 服务不起作用