AutoFac文档9(转载)
目录
- 开始
- Registering components
- 控制范围和生命周期
- 用模块结构化Autofac
- xml配置
- 与.net集成
- 深入理解Autofac
- 指导
- 关于
- 词汇表
关系类型
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(转载)的更多相关文章
- AutoFac文档(转载)
目录 开始 注册组件 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 开始 程序集 如果你正在使用Nuget包管理器,你可以通过 ...
- 使用swagger实现web api在线接口文档(转载)
一.前言 通常我们的项目会包含许多对外的接口,这些接口都需要文档化,标准的接口描述文档需要描述接口的地址.参数.返回值.备注等等:像我们以前的做法是写在word/excel,通常是按模块划分,例如一个 ...
- 如何从sun公司官网下载java API文档(转载)
相信很多同人和我一样,想去官网下载一份纯英文的java API文档,可使sun公司的网站让我实在很头疼,很乱,全是英文!所以就在网上下载了别人提供的下载!可是还是不甘心!其实多去看看这些英文的技术网站 ...
- AutoFac文档14(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 激活事件 在compo ...
- AutoFac文档13(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 属性注入 属性注入使用 ...
- AutoFac文档12(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 Resolve的参数 ...
- AutoFac文档11(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 元数据 Autofac ...
- AutoFac文档10(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 循环依赖 循环依赖是指 ...
- AutoFac文档8(转载)
目录 开始 Registering components 控制范围和生命周期 用模块结构化Autofac xml配置 与.net集成 深入理解Autofac 指导 关于 词汇表 泛型 给定一个开放的泛 ...
随机推荐
- C#:让您知道您的方法是被何“人”调用
我们要在DisabledObsoleteMethod函数里限制具有“Obsolete”属性的方法调用,我们如何去做呢?在.Net中提供了一个"StackFrame"类用于表示当前线 ...
- jquery-问题解答
1.var v = $('.summer-input:input').val(); //依据class获取input 2.var v = $('input[name=user\\.name]').va ...
- thinkphp输出表格
//这是打印5列n行的表格,所以mod="5" value="4" <tr> <volist name="data" id ...
- C++ 函数参数中“ *&代表什么? ”
typedef struct BitNode { char value; BitNode *lchild,*rchild; }BitNode,*BiTree; void C ...
- C# 7-Zip Executable
7-Zip can be used in C# programs. It provides excellent compression ratios. We embed the 7-Zip comma ...
- Google Scholar 论文参考文献的自动生成
写论文经常需要写出参考文献,各种格式实在是麻烦的不行啊,在网上看到一个参考文献自动生成的博客,现在转载下来,以备以后自已能用. 主要是使用Google Scholar. Step 1: 打开Googl ...
- 使用javascript比较任意两个日期相差天数(代码)
avascript比较两个日期相差天数,可返回负值,表示后者大于前者. 该函数在IE,firefox下均通过测试. /** 比较两个日期相差的天数,可为负值 **/ function DateDiff ...
- 解决 org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type的问题
具体错误如下: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying be ...
- IOS-UITableView入门(3)
UITableView本身自带了(增.删)编辑功能: 1.仅仅要调用UITableView的编辑代码 就会进入编辑状态: [self.tableView setEditing:!self.tableV ...
- pselect 和 select
pselect函数是由POSIX发明的,如今许多Unix变种都支持它. #include <sys/select.h> #include <signal.h> #include ...