目录

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

AutoFac文档5(转载)的更多相关文章

  1. AutoFac文档(转载)

    目录 开始 注册组件 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 开始 程序集 如果你正在使用Nuget包管理器,你可以通过 ...

  2. 使用swagger实现web api在线接口文档(转载)

    一.前言 通常我们的项目会包含许多对外的接口,这些接口都需要文档化,标准的接口描述文档需要描述接口的地址.参数.返回值.备注等等:像我们以前的做法是写在word/excel,通常是按模块划分,例如一个 ...

  3. 如何从sun公司官网下载java API文档(转载)

    相信很多同人和我一样,想去官网下载一份纯英文的java API文档,可使sun公司的网站让我实在很头疼,很乱,全是英文!所以就在网上下载了别人提供的下载!可是还是不甘心!其实多去看看这些英文的技术网站 ...

  4. AutoFac文档14(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 激活事件 在compo ...

  5. AutoFac文档13(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 属性注入 属性注入使用 ...

  6. AutoFac文档12(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 Resolve的参数 ...

  7. AutoFac文档11(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 元数据 Autofac ...

  8. AutoFac文档10(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 循环依赖 循环依赖是指 ...

  9. AutoFac文档9(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 关系类型 Autofa ...

  10. AutoFac文档8(转载)

    目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 泛型 给定一个开放的泛 ...

随机推荐

  1. JAVA-数据类型、变量、常量

    http://blog.csdn.net/yuhailong626/article/details/7245571 http://www.cnblogs.com/JackieADBM/p/534222 ...

  2. rabbitmq 连接測试

    1.假设写错了host (如:factory.setHost("locathost"); )报错: Exception in thread "main" jav ...

  3. Go -- 调用dll库

    package main import ( "syscall" "unsafe" ) func main(){ h, err := syscall.LoadLi ...

  4. 《C++反汇编与逆向分析技术揭秘》之11——虚函数

    虚函数的机制 当类中定义有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张地址表中,这张表被称为虚函数地址表.编译器还会在类中添加一个虚表指针. 举例: CVirtual类的构造函数中没有进行任 ...

  5. 由学习《软件设计重构》所想到的代码review(一)

    前言 对于一个程序猿来讲怎样来最直接的来衡量他的技术能力和产出呢?我想最直观的作法是看他的代码编写能力,就拿我常常接触的一些程序猿来看,他们买了非常多技术重构类书籍.可是看完后代码编写能力并没有显著提 ...

  6. OpenCV学习(10) 图像的腐蚀与膨胀(1)

    建议大家看看网络视频教程:http://www.opencvchina.com/thread-886-1-1.html    腐蚀与膨胀都是针对灰度图的形态学操作,比如下面的一副16*16的灰度图. ...

  7. 数学图形(2.18)Hyperbolical conical spiral双曲圆锥螺线

    双曲圆锥螺线 #http://www.mathcurve.com/courbes3d/spiralehyperbolique/spiralehyperbolique.shtml vertices = ...

  8. 【python】gevent学习

    之前测试了stackless,感觉不太好. 不过python作为最火的脚本语言,还是吸引力难挡. python的协程方案,除了stackless,还有greenlet, 相应的事件框架也有gevent ...

  9. Thinkphp学习笔记7-输入变量

    在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了. ...

  10. [Algorithm] Dynamic programming: Find Sets Of Numbers That Add Up To 16

    For a given array, we try to find set of pair which sums up as the given target number. For example, ...