Unity不拦截WCF服务调用
本文关键字:服务 调用 WCF Unity | 更新日期: 2023-09-27 18:13:27
我有一个WCF服务,我想拦截方法CreateOrder每当它被调用:
[ServiceContract]
public interface IOrderService
{
[OperationContract]
[CreateOrderCallHandlerAttribute]
void CreateOrder(string orderXML);
}
public class OrderService : IOrderService
{
public void CreateOrder(string orderXML)
{
// ...
}
}
CreateOrderCallHandlerAttribute继承自ICallHandler。
所以,我使用了这篇文章中描述的方法:http://weblogs.asp.net/fabio/archive/2009/03/24/inversion-of-control-with-wcf-and-unity.aspx
我使用配置文件为服务依赖的类型配置依赖注入。一旦unity容器在加载配置文件后返回,我就向其添加以下代码:
UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
configuration.Containers.Default.Configure(Container);
Container.AddNewExtension<Interception>();
Container.Configure<Interception>().SetInterceptorFor<IOrderService>(new TransparentProxyInterceptor());
,但是无论何时调用该方法,仍然不会调用拦截代码。
在实现上而不是被映射的接口上设置拦截器。试一试:
Container.Configure<Interception>().SetInterceptorFor<OrderService>(new TransparentProxyInterceptor());