我正在尝试为我们的应用程序开发WCF服务时坚持DRY原则,但我似乎要陷入很多兔子洞。我最初的想法是拥有一个抽象基类来保存所有服务的通用代码,并为每个具体服务派生类,但似乎无法让VS2012发挥得很好。
无论什么时候创建一个服务类,它都会将合同(接口)和实现类放在同一个项目中,而试图将它们拉开来似乎掩盖了VS在引擎盖下做的连接,那么事情就这样了断裂。
我想我的所有“经典”OO设计都会妨碍我,我希望从接口类和抽象基类派生出具体的服务,但我没有太多的运气。我找到了有关服务使用的多态数据类型的问题/博客,但没有找到多态SERVICE类型的示例。有人能指出我吗?
谢谢, 彼得
更新:也许我过度思考整个事情,我实际上并没有尝试继承OPERATIONS,因为复合方法更有意义,我只想将公共代码保存在一个地方(显然......)整个“静态助手类”的方法对我总是感觉“肮脏”,有点打败整个面向对象的方法......我希望我能简单地让对应的服务类继承自一个抽象的基类,而不一定是任何特定服务合同的实施,但只是一种保持代码DRY的方法......
另外:我正在尝试将模板模式用于服务类,因为服务的整体结构非常相似(恶魔总是在细节中......)
答案 0 :(得分:4)
您可以将接口类和实现类分成不同的项目。一种简单的方法是手动创建项目并像编写任何.NET OO解决方案一样编写/复制代码。
以下是Microsoft提供的一组示例...
http://www.microsoft.com/en-us/download/details.aspx?id=21459
您应该能够深入了解样本并找到符合您要求的样本。