【问题标题】:AOP with Autofac and DynamicProxy2AOP 与 Autofac 和 DynamicProxy2
【发布时间】:2011-06-16 00:03:32
【问题描述】:

我正在使用 Autofac 和 DynamicProxy2 来像这样拦截我的类

builder.RegisterType<Calculator>().As<ICalculator>().EnableInterfaceInterceptors()
                .InterceptedBy(typeof (CallLogger));

这将拦截给定接口上的所有方法。

有没有办法只拦截接口的特定方法?

【问题讨论】:

  • 您需要为此使用IProxyGenerationHook。不确定 Autofac 是否在 API 中有一个 .... 钩子。
  • 请你提供一个 IInterceptor 派生类的例子吗?
  • 我的博客上有一个例子,作为 DynamicProxy 整个教程的一部分

标签: aop autofac castle-dynamicproxy


【解决方案1】:

我能想到几种方法,而且可能还有更多。

您可以创建一个自定义属性,如 [LogCall][DoNotLogCall](选择加入或选择退出)并将其应用于要拦截的方法,然后检查 CallLogger 中是否存在该属性。

或者,您可以使用应记录的方法的名称(或查找规则)配置 CallLogger

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多