【写在前面】尝试做完一件工作之外自我觉得有意义的一件事,那就从翻译Autofac的帮助文档吧。
入门指南
将Autofac集成你的应用程序的步骤通常很简单,一般是:
时刻以IOC(控制反转)的思想来规划你的应用程序
在你的Porject中添加Autofac引用
按照如下步骤设计应用程序的启动环节
创建一个ContainerBuilder
向ContainerBuilder注册组件
通过ContainerBuilder的Build()方法获得Container(后续需用到)
在应用程序运行环节时,按如下步骤执行
通过Container获得一个lifetime scope
通过lifetime scope解析出组件实例
通过实例继续执行
本篇将通过入门指南实现一个简单的Console应用程序,一旦有了基础,后续可以延伸集成WCF、ASP.NET等等。
规划应用程序
先简单解释一下IOC(控制反转)。
通常情况下,类A若需要类B的一些功能,则在类A中需要通过“new”操作来完成创建和使用功能,这样在代码层面就固定住了类A和类B之间的相互依赖关系。这样的“依赖”,在后续的重构或修改时,影响面很大。
而IOC(控制反转)的思维,则是取消,由类A来创建类B,变更为在执行期间,由IOC容器来根据需要和约定自动创建类B来给类A使用。
Martin Fowler有一篇著名的文章,解释何谓IOC,可以点击“链接”查看。
在本篇的示例中,我们将定义一个类,这个类可以输出一些数据;但我们不想和Console绑定住,因为我们并不能确定在实际使用过程中Console是否真的可用。
我们通常可以这样实现: