注意:本文为原创文章,任何形式的转载、引用(包括但不限于以上形式)等,须先征得作者同意,否则一切后果自负。 简介
Autofac 是一个令人着迷的.NET IoC 容器。
它管理类之间的依赖关系。当应用程序的规模和复杂性随着时间不断增长时,也能易于更改。这是通过将常规 .NET 类视为组件来实现的。
入门将 Autofac 集成到我们的应用程序的基本模式是:
时刻牢记用控制反转(IOC)来构建我们的应用程序。
添加Autofac引用。
在应用程序启动时…
创建一个ContainerBuilder。
注册组件。
构建容器并将其存储以备后用。
在应用程序执行期间…
从容器创建一个生命周期范围。
使用生命周期范围来解析(resolve)组件的实例。
构建应用程序
控制反转背后的思想是:与其将应用程序中的类捆绑在一起,让类“新建”它们的依赖关系,不如在类构造期间把依赖项传递进来,如果每次传递的依赖项不相同,则可以随时切换依赖关系并调用相应的依赖项的实现。
对于我们的示例应用程序,我们将定义一个将当前时间写出的类。但是,我们不希望将它绑定到Console,因为我们希望能够稍后测试该类,或者在控制台不可用的地方使用它。
我们将尽可能地把写出时间的机制抽象化,因为如果我们以后想把它变成一个写出明天日期的程序版本,那么就可以快速实现该功能。
代码如下:
public interface IOutput { void Write(string content); }