【写在前面】尝试做完一件工作之外自我觉得有意义的一件事,那就从翻译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是否真的可用。

我们通常可以这样实现:

 

网友评论