zoukankan      html  css  js  c++  java
  • AutoFac文档5(转载)

    目录

    1. 开始
    2. Registering components
    3. 控制范围和生命周期
    4. 用模块结构化Autofac
    5. xml配置
    6. 与.net集成
    7. 深入理解Autofac
    8. 指导
    9. 关于
    10. 词汇表

    扫描

    autofac可以使用约定在程序集中注册或者寻找组件。

    发现组件

    autofac2可以根据用户指定的规则在程序集中注册一系列的类型,这种方法叫做convention-driven registration或者扫描。

     
    1
    2
    3
    4
    5
    var dataAccess = Assembly.GetExecutingAssembly();
     
    builder.RegisterAssemblyTypes(dataAccess)
        .Where(t => t.Name.EndsWith("Repository"))
        .AsImplementedInterfaces();

    每个RegisterAssemblyTypes方法只能应用一套规则。如果有多套不同的集合要注册,那就有必要多次调用RegisterAssemblyTypes。

    选择类型

    RegisterAssemblyTypes接受程序集的集合。默认情况下,程序集中所有公共具体的类都会被注册。

    如果想要过滤注册的类型,可以使用Where.向下面这样:

     
    1
    Where(t => t.Name.EndsWith("Repository"))

    如果想要排除某些类型,使用Except():

     
    1
    Except<MyUnwantedType>()

    或者,自定义那些已经排除的类型的注册:

     
    1
    Except<MyCustomisedType>(ct =>ct.As<ISpecial>().SingleInstance())

    多个过滤器可以同时使用,这时他们之间是AND的关系

    指定服务

    RegisterAssemblyTypes这个注册方法是注册单个方法的超集,所以类似As的方法也可以用在程序集中,例如

     
    1
    As<IRepository>()

    As和Named这两个方法额外的重载方法接受lambda表达式来决定服务会提供什么样的类型。

  • 相关阅读:
    线程同步的几种实现方案
    关于java中三种初始化块的执行顺序
    java数组
    Codeblocks 17汉化
    聚焦天狗
    linux下搭建svn添加多个仓库(项目)
    使用Python在windows环境下获取Linux服务器的磁盘、内存等信息
    python smtplib使用163发送邮件 报错 554 DT:SPM
    防抖与节流
    js
  • 原文地址:https://www.cnblogs.com/sandea/p/3289936.html
Copyright © 2011-2022 走看看