2013-09-26 140 views
4

我试图在开发WCF服务的应用程序中坚持DRY原则,但我似乎要走很多兔子洞。我最初的想法是拥有一个抽象基类来保存所有服务通用的代码,并为每个具体服务派生类,但似乎无法让VS2012发挥出色。带WCF的多态服务

无论何时你创建一个服务类,它都会将合约(接口)和实现类放在同一个项目中,并试图将这些分离开来,似乎可以使VS在引擎盖下完成的接线事情破裂。我想我所有的“经典”面向对象设计的年代都在困扰着我,我想要从接口类和抽象基类派生出具体的服务,但我没有很多运气。我发现有服务使用多态DATA类型的问题/博客,但没有找到多态SERVICE类型的例子。任何人都可以指点我?

谢谢, 彼得

更新:也许我过想整个事情,我其实并不想有运营继承自一个复合的做法会更有意义,我只是想保持通用代码在一个地方(显然是......),整个“静态助手类”方法对我来说总是觉得“脏”,有点击败了整个面向对象的方法......我希望我可以简单地让contrete服务类继承一个抽象的基类,不一定是任何特定的服务合同的实现,但只是一种方法来保持代码DRY ...

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

+0

是的,如果你不遵循模板,它将无法正常工作,但这并不意味着你必须遵循该模板。只需在创建新项目后修复环境,或者如果您经常制作项目[制作自己的模板项目](http://msdn.microsoft.com/en-us/library/vstudio/s365byhx.aspx)并且具有可视化工作室使用它。你有一种[XY问题](http://meta.stackexchange.com/questions/66377),你应该[编辑问题](http://stackoverflow.com/posts/19035608/edit )或者询问一个新的关于你正在做WCF和基类的困难。 –

+0

如果继承不能为你工作,你可以尝试委派,这是几行代码,但可能不那么头疼。 – PatFromCanada

+0

您希望从抽象基础继承哪些常用功能? –

回答

4

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

下面是一组由微软提供的样本进行...

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

你应该能够挖掘到的样品,找到一个符合您的要求。