【问题标题】:Autofac aop wildcard: is it possible?Autofac aop 通配符:有可能吗?
【发布时间】:2011-09-17 11:55:15
【问题描述】:

在 Autofac 中使用 AOP 的规范方式是在每个组件上声明拦截器:

builder.RegisterType<Filter1>().As<IFilter>()
  .EnableInterfaceInterceptors();

在我的项目中,我有很多(数十个)IFilter 实现,因此添加和维护它们很不方便。我更喜欢拦截所有服务实例的能力。比如:

builder.EnableInterfaceInterceptors<IFilter>();

有可能吗?

【问题讨论】:

    标签: autofac


    【解决方案1】:

    我不确定EnableInterfaceInterceptors 是否可以处理多个注册,但如果可以,这应该可以:

    builder.RegisterAssemblyTypes(assemblies).Where(t => t.IsAssignableTo<IFilter>())
        .EnableInterfaceInterceptors();
    

    如果需要,可以将其包装到扩展方法中(就像几乎所有 ContainerBuilder 注册方法一样),以提供您在上面请求的确切语法。

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2015-05-13
      相关资源
      最近更新 更多