4

在为我们的应用程序开发 WCF 服务时,我试图坚持 DRY 原则,但我似乎陷入了很多困境。我最初的想法是拥有一个抽象基类来保存所有服务通用的代码,并为每个具体服务提供派生类,但似乎无法让 VS2012 发挥得很好。

每当您创建一个服务类时,它都会坚持将合同(接口)和实现类放在同一个项目中,并且试图将它们分开似乎会破坏 VS 在后台完成的布线,因此事情就会中断。

我想我多年来的“经典”OO 设计都在阻碍我,我希望从接口类和抽象基类派生具体服务,但我运气不佳。我找到了有关服务使用多态 DATA 类型的问题/博客,但没有找到多态 SERVICE 类型的示例。谁能指点我?

谢谢,彼得

更新:也许我在考虑整个事情,我实际上并没有尝试继承 OPERATIONS 因为复合方法更有意义,我只想将通用代码保留在一个地方(显然......),并且整个“静态助手类”方法对我来说总是感觉“肮脏”,有点打败整个 OO 方法......我希望我可以简单地让具体服务类继承自一个不一定是任何实现的抽象基类特定的服务合同,但只是保持代码干燥的一种方式......

另外:我正在尝试对服务类使用模板模式,因为服务的整体结构非常相似(魔鬼总是在细节中......)

4

1 回答 1

4

您可以将接口类和实现类分离到不同的项目中。一种简单的方法是手动创建项目并编写/复制代码,就像对任何 .NET OO 解决方案一样。

以下是微软提供的一组示例...

http://www.microsoft.com/en-us/download/details.aspx?id=21459

您应该能够深入研究样本并找到满足您要求的样本。

于 2013-09-26T19:07:25.953 回答