0

我想在一个名为 A 的类上创建一个拦截器管道。通过 pipleline i 意味着每个拦截器都可以在调用类方法之前或之后执行一些过程,而无需直接调用被拦截的方法,这与 Windsor 中拦截器的传统用法不同。假设以下示例我想在所有 A 类方法上应用两个拦截器 Interceptor1 和 Interceptor2。在未来的其他人中,也许会添加其他类型的拦截器。提供这些拦截器的顺序并不重要,谁应该调用调用。继续,应该在哪里发生被拦截的方法调用。

public class A
{
    public virtual void DoSomething()
    {

    }
}
public class Interceptor1 : IInterceptor
{
    public virtual void Intercept(IInvocation invocation)
    {

    }
}

public class Interceptor2 : IInterceptor
{
    public virtual void Intercept(IInvocation invocation)
    {

    }
}

例如,假设我们要在进入类方法之前检查安全性、启动事务或类似的事情。应该提到的是,这些拦截器对于每个类都是不同的,并且在开发过程中可能会发生变化。我们可以在 wcf 中看到这样的模式,我们使用操作行为或服务行为来控制整个服务或每个服务操作。

4

1 回答 1

0

我一定是个老派的城堡人,但这不就是工厂的用途吗?在每个类上打一个接口,让工厂在那个接口上工作。

于 2012-08-12T13:00:18.690 回答