当前位置 > 首页 > Asp.net

两会系列之Ioc容器(2)-- asp.net mvc中整合autofac

2012-11-28 14:02:00来源:Asp.net

经过上篇蜻蜓点水的介绍后,本篇通过实例快速上手autofac,展示当asp.net mvc引入了autofac之后会带来什么。

创建Asp.net MVC并引入Autofac

首先,创建一个MVC站点,为方便起见,选初始带HomeControllerAccountController的那种。然后通过NuGet或到Autofac官网下载来引入类库。个人推荐前者,因为从VS2010开始,已内集可视化的NuGet功能,使用起来非常方便。如下图所示:

image

这是vs2012的界面,点击“Manage NuGet Packages…”,弹出窗体如下,在右上角搜索框中输入“Autofac”,找到对应的库点击安装即可。这里需要应用的库有两个“Autofac”和“Autofac ASP.Net MVC3 Integration”。

image

在MVC入口处整合autofac

在MVC中,Controller通常不含复杂的逻辑以便于扩展和维护,用户验证,数据库存取,及上篇所说的日志记录等功能都会抽象并独立出来。当Controller需要这些功能时,内含对应的抽象即可。

比如,现在HomeController需要用到日志记录功能。沿用上篇ILog接口,假设目前已有一种ILog的实现类--TxtLog,放在根目录下Services文件夹中。

public class TxtLog:ILog
{
????public void Save(string message)
????{
????????//save as txt
????}
}

HomeController需添加一个ILog类型变量,为了直观看到类名,我把_log的类名赋给ViewBag.LogTypeName并显示出来。代码如下:

public class HomeController : Controller
{
????private ILog _log;
????
????public HomeController(ILog log)
????{
????????_log = log;
????}

????public ActionResult Index()
????{
????????ViewBag.Message = "Welcome to ASP.NET MVC!";
????????ViewBag.LogTypeName = _log.GetType().Name;
???????
????????return View();
????}

????

  • Silverlight Soliloquy: The Beginning

    2007-8-16 0:04:00

    After reading Jesse Libertys blog series at the Silverlight.net site , I decided to journey along

  • Hilo: Windows7 开发教程

    2010-7-21 11:57:00

    [原文发表地址] Hilo: Windows 7 development walk-throughs [原文发表时间] 9 Jul 2010 6:14 PM Windows 7 中

  • DotNet程序员面试问题评估

    2011-7-26 14:33:00

    欢迎各位Dotnet程序员回答。不需要回答出具体问题,只要标记大致程度即可。 1什么是DotNet的CLR? CLR作用是什么? A不知道 B知道很少 C知道一些 D非常了解 2 D

  • 手把手教你写Ajax驱动的DataGrid控件(三)

    2007-10-10 9:24:00

    摘要: 数据源要在适当的时间销毁,如果太早,当然不行;如果太晚,势必造成内存的浪费。我们提供两种机制确保不再使用的数据源可以被销毁。 阅读全文 wfyfngu 2007-10-10 09

  • AspNetPager+GridView分页实现

    2012-3-26 22:24:00

    1.框架是.NET Framework 4.0 2.一共为三个部分: 前台页面设计代码、前台页面程序代码、css样式 3.其中数据库连接操作用了DB类(连接语句),SQLHelper(微软的数据库操

  • FeedBurner not getting my latest blog articles from weblogs.asp.net–need help

    2011-6-3 8:32:00

    This is more of an ‘I need help’ kind of an article. So, my feed stopped getting updated with my bl

  • 《C#3.0 in a Nutshell,3rd Edition》之C#3.0和.net3.5基本介绍篇

    2009-4-30 21:40:00

    摘要: 前言借着看这本书的机会,好好系统学习一下C#3.0和.net3.5。C#3.0是一门面向对象的编程语言,具有多用途和类型安全等特征。为实现开发和学习的高效性,她在语言的简单,易表达,以及可编

  • 2009 Scrum上海聚会

    2009-11-24 16:55:00

    阅读: 685 评论: 0 作者: Daniel Teng 发表于 2009-11-24 12:23 原文链接 Scrum Gathering Shanghai 2009将于十二月十二日举

  • Silverlight2 边学边练 之八 数据绑定

    2009-8-5 19:22:00

    本篇介绍SL2的数据绑定功能,在Silverlight2中数据绑定有3中模式: * 单向模式(OneWay):源数据更新时目标数据也随之更新。 * 双向模式(TwoWay):源数据或

  • SQL2005中利用PIVOT实现分组统计

    2009-10-30 2:45:00

    阅读: 131 评论: 1 作者: 宜城小子 发表于 2009-10-29 23:10 原文链接 PIVOT 是SQL Server 2005中新加入的运算符,PIVOT 通过将表达式某一