如何在不使用基类的情况下封装WCF服务的代码?

时间:2014-06-29 17:52:58

标签: c# web-services wcf extensibility

我们所有的服务都将ServiceCallContext对象作为参数。然后,该服务创建一个代理,并根据ServiceCallContext告诉代理要使用的连接字符串。

换句话说,我们的一些客户拥有自己的数据库,因此服务调用必须将代理指向他们的数据库。

我想获取查看ServiceCallContext的代码并选择正确的连接并将其放在基本服务类中。我的团队负责人并不喜欢这个想法,因为他觉得这会是“隐藏”行为并且这会是一件坏事。他建议通过某种WCF扩展可能有更好的方法来完成同样的事情。

老实说,只要我可以重用它,我就不在乎我们如何实现代码,因为我认为在我创建的每个服务中重写它都是绝对愚蠢的。我开始在PluralSight上查看一些WCF视频,看起来它有很多很棒的东西可以做,但不幸的是我不太清楚从哪里开始。任何人都可以给我一点指示WCF是否可以完成我正在尝试做的事情,如果是的话,我正在寻找WCF的特定功能?

1 个答案:

答案 0 :(得分:1)

您需要的功能是custom interceptor

这允许您告诉WCF堆栈查看传入消息并根据它们执行某些操作。如果你将拦截器包装到它自己的程序集中,那么你可以从多个服务中引用它。