gpt4 book ai didi

c# - Unity 不拦截 WCF 服务调用

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:40 25 4
gpt4 key购买 nike

我有一个 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

我使用配置文件为服务依赖的类型配置依赖注入(inject)。一旦统一容器在加载配置文件后返回,我就向其中添加以下代码:

        UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
configuration.Containers.Default.Configure(Container);
Container.AddNewExtension<Interception>();
Container.Configure<Interception>().SetInterceptorFor<IOrderService>(new TransparentProxyInterceptor());

但是无论何时调用该方法,拦截代码仍然没有被调用。我错过了什么?

最佳答案

在实现而不是被映射的接口(interface)上设置拦截器。尝试:

Container.Configure<Interception>().SetInterceptorFor<OrderService>(new TransparentProxyInterceptor());

关于c# - Unity 不拦截 WCF 服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com