【问题标题】:Can I specify to Castle Windsor which virtual methods to override in a class proxy?我可以向 Castle Windsor 指定要在类代理中覆盖哪些虚拟方法吗?
【发布时间】:2010-05-03 20:02:08
【问题描述】:

我在一个类中有许多虚拟方法,但只有一个应该被拦截,我可以告诉 Castle Windsor 只覆盖那个方法,这样我就不必在拦截方法中进行验证了吗?

编辑:

我使用 IKernelEvents.ComponentRegistered 事件来选择获取拦截器的类型。

【问题讨论】:

  • 用装饰器代替拦截器怎么样?

标签: c# castle-windsor aop interceptor castle-dynamicproxy


【解决方案1】:
  1. 如果您只想代理一种方法,请使用IProxyHook 选择您要代理的方法。
  2. 如果您正在修改ComponentModel(并且添加拦截器或代理挂钩就是这样一种操作),请使用IContributeComponentModelConstructions。 See the docs 以获得更深入的解释。

【讨论】:

  • 我应该使用这个接口来更改我使用带有 IProxyHook 的 DynamicProxy API 手动创建的代理的“ComponentModel.Implementation”吗?
  • 正如文档所说,通常如果您想对 ComponentModel 进行修改,请在 IContributeComponentModelConstruction
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-07-16
  • 2016-02-05
  • 2010-09-07
  • 1970-01-01
  • 2013-11-05
  • 1970-01-01
相关资源
最近更新 更多