当前位置 > 首页 > 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();
????}

????

  • 也谈贝叶斯分类(C#)版本

    2009-12-24 13:20:00

    阅读: 491 评论: 5 作者: 大禹治水 发表于 2009-12-24 10:05 原文链接 最近在做一个大作业。搭建一个信息检索平台。用到了贝叶斯分类参考了洞庭散人大哥的技术博客

  • [Mvc]在ASP.NET MVC中使用Repeater

    2009-5-21 21:22:00

    个人很喜欢MVC这种开发模式,非常的方便,结构很清晰。 但是在MVC下面,View与代码是完全分离了,也没有了服务端的FORM,意味着几乎所有的服务器控件都无法使用!(内幕:其实本人基本上从来不使用

  • Identifying ASP.NET controls is the first step

    2007-8-30 21:54:00

    Every time I build an ASP.NET web form, I invest a certain amount of my development effort in givin

  • 博客园开发征途新书《我也能做CTO之.程序员职业规划》出版

    2009-8-18 6:16:00

    摘要: 经过了半年的写作,终于这本书与大家见面了;把我15年的IT开发管理经验做了一次总结!写这本书的目的是想让更多的程序员、编程爱好者以及大学生们能少走弯路。 本书由低到高逐

  • 浅谈项目需求过程

    2009-4-23 23:16:00

    最近加盟一家新的公司,老总不懂技术,却精通业务、使用软件,很想让自己的管理思想融入软件之中,可是毕竟技术人员和他在谈软件时就没有了共同的语言,老总的每个业务点,技术人员老是会想是怎么实现这个业务,最

  • Extjs表单生成器

    2009-8-18 2:05:00

    摘要: 背景 随着Extjs的不断成熟,它也在不断的被开发人员所接受和使用。Extjs是一个完全的UI框架,它自带的控件已经能很好的满足日常开发的需要,并且它底层仍是以html和样式为基础,在不满意

  • Utilizando o Velocity CTP3

    2009-6-2 3:46:00

    Recurso muito interessantepara quem desenvolve sites ou aplica??escom um grande volume de acesso a

  • 在PHP中使用ASP.NET AJAX

    2007-4-19 1:59:00

    借助于CodePlex上开源项目 PHP for Microsoft AJAX Library 的帮助,我们已经可以在PHP上使用ASP.NET AJAX的很多核心功能了。 下载安装

  • 【华磊原创】-提高用户体验?衡量页面加载速度的几个关键指标。

    2010-8-25 19:46:00

    作者: 华磊 发表于 2010-08-25 13:29 原文链接 阅读: 866 评论: 3 其实要判断一个页面的执行速度的快慢与否,主要有如下几个时间比较关键: 页

  • WF4.0 基础篇 (一)开始使用WF

    2009-10-26 15:28:00

    阅读: 5 评论: 1 作者: WXWinter(冬) 发表于 2009-10-26 15:16 原文链接   来博客园写WF主题博客已经3年了, 在园子里认识了很多朋友,