更改WCF逻辑而不影响客户端

时间:2015-02-12 09:57:41

标签: c# wcf

我是WCF的新手。所以,请耐心等待。

我有许多客户使用的WCF服务

示例:我有一个计算总和的服务,所有客户都使用该服务。现在我有一个想要给予折扣的客户。我想更改服务以计算该特定客户端的折扣而不影响其他客户端。如何实现(我认为可以通过重载来实现。我需要除了重载之外的解决方案)。

2 个答案:

答案 0 :(得分:1)

在我看来,它是重载你的功能的最佳解决方案。

原因是,如果包含disount等内容,则计算的结果不同。

让我们在代码中说:

public float Add(float nrOne, float nrTwo) {
  return nrOne + nrTwo;
}

public float Add(float nrOne, float nrTwo, float discount) {
  return nrOne + nrTwo - discount;
}

另一种方式是,你写第二个功能。

 public float AddWithDiscount(float nrOne, float nrTwo, float discount) {
  return nrOne + nrTwo - discount;
}

因此,具有授予折扣的客户可以简单地调用该函数而不是未授予折扣的客户端

答案 1 :(得分:0)

我能想到的另一个解决方案是使用可选参数

public float Add(float n1, float n2,float discount=0) {
 return n1 + n2-discount;
}

这样客户端就不必更改服务。只有希望利用折扣的客户才能通过折扣参数。