WCF Web服务膨胀问题

3

我正在开发一个WCF Web服务,但它变得非常臃肿。你使用哪些技术来拆分合同的实现?

2个回答

4

你有几种选择:

首先,你可以使用C#的partial class功能将它们全部放在一个类中,但拆分到不同的文件中。

其次,你可以让主要的服务类将请求传递给多个其他按逻辑组织的实际类之一。

第三种选择是考虑重构以减少你所拥有的操作数量。你所暴露的所有方法是否实际上都有用处?

最后,你总是可以将服务拆分成多个WCF服务。


1
如果您没有提供更多信息,那么回答您的问题就很困难。您是指服务接口过于臃肿,还是类实现过于复杂?如果我没有看到代码或者没有其他信息,那么回答也很困难,但我会尽力:
请注意,WCF服务基本上只是一个实现接口并在其方法上具有一些属性的常规类。因此,所有其他良好的面向对象设计规则都适用于它。考虑它的功能,它是否真正具有单一职责,如果不是,请尝试将某些职责外包给您的服务所依赖的其他类。如果需要非默认构造函数,请使用IInstanceProvider创建服务类,并提供其依赖项(或者如果您使用Windsor Container,请使用WCF Facility)。
如果您真的想要,可以扩展继承链,并将一些代码移动到基类中。然而,我不这样做,总是更喜欢使用组合而不是继承。
检查您的服务契约,并考虑它的内聚性。也许您应该将其拆分为几个更小、更具内聚性的服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接