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表达式来决定服务会提供什么样的类型。

  • 相关阅读:
    CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用
    生产者-消费者问题(2)
    c++顺序容器
    打印二叉树某一层次的值(重点)
    二叉树层次遍历
    搜索算法比较
    动态定义数组
    RMQ(range minimum/maximum query)即查询区间最大最小值。
    string 空值
    vector 下标操作
  • 原文地址:https://www.cnblogs.com/sandea/p/3289936.html
Copyright © 2011-2022 走看看