【问题标题】:Castle Windsor 3 AOP Via AttributesCastle Windsor 3 AOP 通过属性
【发布时间】:2011-12-14 05:18:59
【问题描述】:

我一直在寻找一些关于如何最好地使用 Castle Windsor 3 和 AOP 的简单示例,但通过属性而不是在每个组件定义中添加拦截器。

那么有没有一种简单的方法来获取具有如下属性的方法:

public class SomeClass
{
   [Log]
   public virtual void DoSomething() {...}
}

像这样调用拦截器:

public class SomeInterceptor : IInterceptor
{
   //... add the logger and write out method start, exception, finished info
}

无需针对实际的 SomeClass 配置指定拦截器,如下所示:

someContainer.Register(Component.For<SomeClass>().ImplementedBy<SomeClass>()).Interceptors<SomeInterceptor>();

在我使用过的大多数其他 DI 框架中,您可以通过被调用方法的规则或通过定位属性来设置 AOP。所以希望这能让你知道我在追求什么。

【问题讨论】:

    标签: c# castle-windsor aop


    【解决方案1】:

    您想添加一个ComponentModel construction contributor,它将在组件注册时检查它们并将拦截器添加到需要它的组件中。

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2012-01-23
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多