我试图在为我们的应用程序开发 WCF 服务时坚持 DRY 原则,但我似乎陷入了很多困境。我最初的想法是有一个抽象基类来保存所有服务通用的代码,并为每个具体服务派生类,但似乎无法让 VS2012 发挥出色。
每当您创建一个服务类时,它都会坚持将契约(Contract)(接口(interface))和实现类放在同一个项目中,并且试图将它们分开似乎会破坏 VS 在幕后完成的布线,然后事情休息。
我想我多年的“经典”OO 设计都受到了阻碍,我想让具体的服务派生自接口(interface)类和抽象基类,但我运气不佳。我找到了关于服务使用多态数据类型的问题/博客,但没有找到多态服务类型的示例。谁能指点我?
谢谢, 彼得
更新:也许我对整个事情想得太多了,我实际上并没有尝试继承 OPERATIONS,因为复合方法会更有意义,我只想将通用代码保留在一个地方(显然......) ,整个“静态助手类”方法对我来说总是感觉“肮脏”,有点打败整个面向对象的方法......我希望我可以简单地让具体的服务类继承自一个抽象基类,这个基类不一定是任何特定服务契约的实现,但这只是保持代码干燥的一种方式......
另外:我正在尝试对服务类使用模板模式,因为服务的整体结构非常相似(细节决定成败...)
最佳答案
您可以将接口(interface)类和实现类分离到不同的项目中。一种简单的方法是手动创建项目并像对任何 .NET OO 解决方案一样编写/复制代码。
下面是微软提供的一组示例...
http://www.microsoft.com/en-us/download/details.aspx?id=21459
您应该能够深入研究示例并找到满足您要求的示例。
关于c# - WCF 的多态服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035608/