目录

  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文档 目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 服 ...

  2. autofac文档:事件

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

  3. 如何:修改 Office Open XML 文档【转载】

    全文转载自:http://msdn.microsoft.com/zh-cn/library/bb669125.aspx 本主题显演示一个打开.修改和保存 Office Open XML 文档的示例. ...

  4. 服务器安全部署文档(转载)

    转载链接http://www.cnblogs.com/EmptyFS/p/3547796.html 年前一直在赶项目,到最后几日才拿到新服务器新添加的硬盘,重做阵列配置生产环境,还要编写部署文档做好安 ...

  5. JAVA--API中文在线帮助文档【转载】

    <W3School> <MaTools>(JAVA 8th) <OSCHINA> 以上内容来自于: FFFXXXFFF_JAVA 中文在线帮助文档手册网址集合[转载 ...

  6. 利用Freemarker模板生成doc或者docx文档(转载整理)

    可以直接看主要代码实现 doc作为模板文件生成指定格式的doc文件 实现逻辑 1.把作为模板的doc文件另存为xml文件 2.凡是需要填充的数据用${xxxx}替代 3.利用Template类将数据填 ...

  7. 用java生成word文档(转载)

    用java生成word文档 poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你: 下载经过封装后的poi包: 这个包就是:tm-extrac ...

  8. makefile:中文版最权威的makefile文档( 转载 )

    跟我一起写 Makefile 陈皓 (CSDN) 概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个 ...

  9. 【资源-文档】转载侵删 | STM32F10XXX参考手册(中文)

    参考手册 STM32F101xx, STM32F102xx.STM32F103xx.STM32F105xx 和 STM32F107xx,ARM 内核 32 位高性能微控制器 本参考手册针对应用开发,提 ...

最新文章

  1. 设置弹性框项目之间距离的更好方法
  2. 趋势|40个统计数据展示CPaaS的2021现状
  3. Linux—解压缩命令总结(tar/zip)
  4. 王者荣耀4月14日服务器维护,王者荣耀4月14日更新了什么内容?4月14日更新内容介绍...
  5. 时序分析基本概念介绍<input/output delay>
  6. 复习webpack4之PWA打包配置
  7. 小米6x更换关机音量键记录
  8. 《软件评测师教程》学习笔记-第一章:软件测试概述
  9. 如何修改SAO用户密码
  10. 使用python的netCDF4库读取.nc文件 和 创建.nc文件
  11. 报名系统 服务器,全国人事考试服务平台系统报名步骤(带报名入口)
  12. 3D打印切片软件Cura的简单使用
  13. 软件测试功能测试全套常见面试题【功能测试-零基础】必备4-1
  14. 多层感知机的从零开始实现( 从D2L 包中抽取函数)
  15. 无线充电组别国一队:浙江工业大学
  16. 华为干部管理经典模型
  17. Python——from collections import namedtuple
  18. python 操作excel2007
  19. Java 位运算基础
  20. html5水墨效果,用html5可以做出水墨晕开的效果吗

热门文章

  1. 测试基础-05-bug的定义生命周期
  2. python基础之字符串定义常见操作、列表定义进阶操作
  3. oracle 942出错,oracle升级后exp出现oracle942错误
  4. java_opts gc回收器_jvm垃圾收集器与内存分配策略
  5. python全网表情包_Python爬虫爬取最右公众号表情包资源
  6. 第一章 进程与线程的基本概念
  7. 08-05 性能测试--定时器场景
  8. 08-02 性能测试--负载模型与压力来源
  9. 文本聚类分析算法_常用的聚类分析算法综述
  10. delphi和python比较_Python For Delphi---更好地协同