目录

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

关系类型

Autofac提供拆箱即用的关系类型。

Autofac会对下面列出的关系类型特别解释。下面列出的每一种关系类型,Autofac都会在需要的时候提供一种默认实现。

比如说,当Autofac会 IEnumerable 类型的构造函数参数进行注入时,它不会寻找提供 IEnumerable 的component,而是容器会找出所有的ITasks实现然后全部注入。

(你可以显示注册这些类型的实现来覆盖默认行为)

Relationship

Type

Meaning

A needs B

B

Dependency

A needs B at some point in the future

Lazy<B>

Delayed instantiation

A needs B until some point in the future

Owned<B>

Controlled lifetime

A needs to create instances of B

Func<B>

Dynamic instantiation

A provides parameters of types X and Y to B

Func<X,Y,B>

Parameterisation

A needs all the kinds of B

IEnumerable<B>

Enumeration

A needs to know X about B

Meta<T> and Meta<B,X>

Metadata interrogation

A needs to choose B based on X

IIndex<X,B>

Lookup

组合关系类型

关系类型可以被组合使用,所以:

1
IEnumerable<Func<Owned<ITask>>>

上面这行代码将向下面这样被解释:

  • 属性所有的实现
  • 返回一个工厂
  • 生命周期被控制
  • ITask服务

标准的类型组合

.NET Type

Equivalent to

Lazy<T,M>

Meta<Lazy<T>, M>

ExportFactory<T>

Func<Owned<T>>

ExportFactory<T,M>

Meta<Func<Owned<T>>>

注意, ExportFactory 类型包含在Silverlight4中而不是.NET中,所以还不被Autofac支持

关系类型和容器的独立性

Autofac中自定义的容器类型不会强迫你将程序紧紧的和Autofac绑在一起。它们会为容器配置提供一种一致的编程模型,和你写其他component一样

例如,你仍然可以创建一个自定义的ITaskFactory ,但是如果有需要的话你可以提供基于 Func<Owned>实现的AutofacTaskFactory

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

  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文档8(转载)

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

随机推荐

  1. SQL Server需要监控哪些计数器 ---指尖流淌

    http://www.cnblogs.com/zhijianliutang/p/4174697.html

  2. 关于NAND flash的MTD分区与uboot中分区的理解

    关于NAND flash的MTD分区与uboot中分区的理解 转自:http://blog.csdn.net/yjp19871013/article/details/6933455?=40085044 ...

  3. SpringMVC杂记(1) 使用阿里巴巴的fastjson

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. Ext树形结构

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. CSRF攻击演示

    CSRF就是伪装成用户做坏事! 它的手段可能是: 一张引发邪恶请求的图片: <img src="http://localhost/demoA.php?money=500" / ...

  6. SpringMVC整合fastjson、easyui 乱码问题

    一.框架版本 SpringMVC:3.1.1.RELEASE fastjson:1.2.7 easyui :1.4.5 二.乱码现象    Action中使用@ResponseBody返回Json数据 ...

  7. 提交svn的时候,提示丢失了预定增加的xxxx

    百度之,发现都是linux或者命令行下的解决方法, 经测试,右键svn目录 选择tortoisesvn 选择svn还原, 即可解决问题

  8. Basic Messager

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. go语言基础之goto的用法

    1.goto的用法 示例: package main //必须有一个main包 import "fmt" func main() { //break //break is not ...

  10. 通过完整示例来理解如何使用 epoll

    网络服务器通常使用一个独立的进程或线程来实现每个连接.由于高性能应用程序需要同时处理大量的客户端,这种方法就不太好用了,因为资源占用和上下文切换时间等因素影响了同时处理大量客户端的能力.另一种方法是在 ...