c# - WCF 的多态服务

标签 c# .net wcf oop polymorphism

我试图在为我们的应用程序开发 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/

相关文章:

c# - 为什么要使用强命名程序集?

c# - Windows Phone 8.1 应用构建中缺少 WMAppManifest.xml

asp.net - Window Service、WCF Service 应用程序和 ASP.NET Web 服务应用程序之间的区别?

c# - 反射参数名称 : abuse of C# lambda expressions or syntax brilliance?

c# - 我应该使用 CancellationTokenSource 还是 CancellationToken 来取消 .NET 中的任务

c# - 如何使用 Arc Segment 绘制具有恒定半径的半圆段

c# - Http 请求在从 ServiceBase.OnShutdown 发送时中止,但在 OnStop 中未中止

c# - 修改选中状态后,不会触发Checkedchanged事件的复选框事件处理程序

wcf - 如何为WCF实现2路SSL证书

c# - 用于处理 HTTP GET 请求的 WCF 服务