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

  • 相关阅读:
    MDI窗体容器
    记事本制作、流的初步引用、窗口的三种显示类型
    ListVies控件的应用
    变量常量
    百度地图自定义离线地图
    通过配置文件方式修改 axios 请求地址
    百度地图坐标偏差
    Vue 全局指令限制输入框输入
    axios post请求发送数组
    WebSocket
  • 原文地址:https://www.cnblogs.com/sandea/p/3289936.html
Copyright © 2011-2022 走看看