你的位置:首页 > ASP.net教程

[ASP.net教程][翻译] Autofac 入门文档


原文链接:http://docs.autofac.org/en/latest/getting-started/index.html

在程序中使用Autofac的基本模式是:

  • 用控制反转(IoC)的思想组织程序。
  • 添加对 Autofac 的引用。
  • 程序启动阶段
    • 创建 ContainerBuilder
    • 注册组件。
    • 生成容器。
  • 程序执行阶段
    • 从容器创建生命周期范围对象(ILifetimeScope接口)。
    • 使用生命周期范围对象解析组件实例。

本文通过一个简单的控制台程序演示这些步骤。

组织程序

控制反转的基本思路是,不让类创建它的依赖项,而是将依赖项通过构造函数传递给它。请参阅 Martin Fowler 这篇解释依赖注入/控制反转的文章。

在本示例中,我们定义一个输出“今天”的日期的类。但是,我们不想让它和 Console 类捆绑在一起。这有两个原因:1,方便测试,2,在没有Console的环境中也能使用。

我们还对输出日期的方式进行抽象,这样就可以随时切换到另一个版本,比如输出“明天”的日期。

代码:

using System;namespace DemoApp{ // 此接口将“输出”概念从Console类解耦。 // 我们只管“输出”,而不关心操作是怎么进行的。 public interface IOutput {  void Write(string content); }  // 这里的实现方式是向Console输出内容。 // 也可以用其他方式,比如输出到 Debug 和 Trace。 public class ConsoleOutput : IOutput {  public void Write(string content)  {   Console.WriteLine(content);  } } // 这个接口将“输出日期”的概念从具体的输出方法中解耦。 public interface IDateWriter {  void WriteDate(); } // TodayWriter 是这些元素汇合在一起的地方。 // 它的构造函数有一个 IOutput 参数,通过提供不同的实现类, // TodayWriter可以将日期写到不同的地方。 // 进一步的,在这里WriteDate的实现方式是输出“今天的日期”, // 我们可以用另一个类输出其他格式,或者其他日期。 public class TodayWriter : IDateWriter {  private IOutput _output;  public TodayWriter(IOutput output)  {   this._output = output;  }  public void WriteDate()  {   this._output.Write(DateTime.Today.ToShortDateString());  } }}

 

现在我们有了组织良好的依赖关系,接下来引入 Autofac。

添加对 Autofac 的引用

首先向项目添加对Autofac的引用。这个示例中,我们只使用 Autofac 的核心部分。其他类型的应用程序可能需要Autofac 集成库。

最简单的方式是使用 NuGet。“Autofac” 程序包包含所有核心功能。

  桂林旅游团购优惠桂林旅游线路报价桂林旅游指南攻略大全桂林旅游住哪里比较方便桂林旅游住宿攻略信宜市石根山介绍?信宜石根山旅游风情区介绍? 信宜石根山路线?信宜石根山旅游风情区怎么坐车? 2015信宜石根山门票怎么预订?茂名石根山票价? 广东丹霞山地址?韶关丹霞山在哪里? 白塔公园 巴郎山攻略 理塘天气情况 格聂神山:佛教圣地-康南第一峰 泡温泉需要穿泳衣吗?泡温泉穿什么泳衣? 从化宝趣玫瑰园好玩吗?宝趣玫瑰园怎么去? 怎样泡温泉最美容? 泡温泉需要泡多久时间最好? 大连圣亚海洋世界8、9月份营业和表演时间 青岛中山公园门票 大连圣亚海洋世界门票价格_圣亚海洋世界票价多少钱及开放时间 大连圣亚海洋世界恐龙传奇9月份营业时间 IDT70V9379L9PRF8 Datasheet IDT70V9379L9PRF8 Datasheet IDT70T3319S133BFI Datasheet IDT70T3319S133BFI Datasheet MK1574-01BSILF Datasheet MK1574-01BSILF Datasheet 深圳4月日本旅游 深圳4月日本旅游 深圳4月日本旅游 4月去什么地方旅游最好 4月去什么地方旅游最好 4月去什么地方旅游最好 全国旅游景点 全国旅游景点 全国旅游景点