【发布时间】:2025-11-27 04:20:02
【问题描述】:
我想在一个名为 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 中看到这样的模式,我们使用操作行为或服务行为来控制整个服务或每个服务操作。
【问题讨论】:
标签: castle-windsor interceptor pipeline