AutoFac文档9(转载)
2013-08-29 16:54
218 查看
目录
开始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>>> |
关系类型和容器的独立性
Autofac中自定义的容器类型不会强迫你将程序紧紧的和Autofac绑在一起。它们会为容器配置提供一种一致的编程模型,和你写其他component一样例如,你仍然可以创建一个自定义的ITaskFactory ,但是如果有需要的话你可以提供基于 Func<Owned>实现的AutofacTaskFactory
相关文章推荐
- AutoFac文档10(转载)
- AutoFac文档14(转载)
- AutoFac文档8(转载)
- AutoFac文档13(转载)
- AutoFac文档7(转载)
- AutoFac文档12(转载)
- AutoFac文档6(转载)
- AutoFac文档11(转载)
- AutoFac文档5(转载)
- AutoFac文档4(转载)
- AutoFac文档3(转载)
- AutoFac文档2(转载)
- AutoFac文档(转载)
- Autofac中文文档--一、注册组件--4组件扫描
- 工作流方面的文档(转载)
- Autofac官方文档(八)【解析服务之传递参数来解析】
- [转载]Sandbox——沙箱技术,来自chromium开发文档
- TinyXML中文文档(转载)
- Autofac官方文档(十二)【实例范围】
- Autofac官方文档(十五)【生命周期事件】