我有一个支持大约10个合同的WCF服务,我们一直在为客户提供特定于此客户的所有业务规则,现在我们有另一个客户将使用完全相同的合同(因此我们无法更改)他们将调用服务的方式与前一个客户端现在调用的方式完全相同,我们可以通过其中一个输入参数区分两个客户端。基于此输入参数,我们必须使用稍微不同的业务逻辑 - 客户端的逻辑将在50%的时间内相同,其余部分将具有不同的逻辑(跨Business / DAL层)。我不想在每个合同实现中使用if else语句来区分和重新路由逻辑,如果另一个客户端进来的话。还有一种处理这种情况的干净方法。我正在使用框架3.5。就像我说的,我不能改变任何合同(服务/数据合同)或新客户的当前服务调用基础设施。谢谢
答案 0 :(得分:0)
您可以两次托管服务并让客户端连接到正确的服务吗?除此之外,我猜你必须使用某种if-else。
答案 1 :(得分:0)
我不能说这是否适用于你,但我们已经解决了类似的问题:
ObjectFactory.With(requestcontext).getInstance<CONTRACT>()
这是一个如何解决这个问题的例子。