【发布时间】:2011-11-22 10:14:01
【问题描述】:
我有一个使用 WCF 进行通信的客户端和服务器应用程序。为了向每个 WCF 消息头添加一些自定义会话信息,我将客户端 WCF 通道包装到“ClientChannelProxy”类中,并使用 Unity Interception 扩展通过方面添加我的自定义头信息。
IUnityContainer container = new UnityContainer();
container.AddNewExtension<Interception>();
container.RegisterType<IClientService, ClientServiceProxy>();
container.Configure<Interception>().SetInterceptorFor<IClientService>(new
TransparentProxyInterceptor());
这对客户端来说很好,因为我可以使用上面显示的代码轻松配置统一容器和拦截。
但是如何在服务器端设置统一和拦截呢?我的 WCF 服务是在 .SVC 文件中配置的,我无法配置拦截和执行我的方面。
<%@ ServiceHost Language="C#" Debug="true" Service="Test.ClientService" %>
<!-- How to configure Unity Interception for this WCF-Service ? -->
如果有人可以帮助我让它工作,那就太好了。 谢谢!
【问题讨论】:
-
您想在调用到达实际服务类之前添加一些处理程序吗?
-
精确。在客户端上,我将一些主体信息添加到 WCF 消息头。服务器应在调用实际服务类之前读取此标头信息并构建自定义主体对象。
-
我已经添加了一个关于这个的答案。
标签: c# wcf unity-container aop