• MVC下的配置
  1. 通过NuGet安装AutoFac插件:Install-Package Autofac.Mvc5  
  2. 在Global中调用:
var builder= new ContainerBuilder();
//注册当前程序集中的所有controller;加上PropertiesAutowired()后,再可以使用属性注入
builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired();
Assembly asmService= Assembly.Load("TestService");
//在bulider中获取不是抽象类的相关程序集;这块添加PropertiesAutowired()可以让接口调用其他接口,
//实现接口间属性注入
builder.RegisterAssemblyTypes(asmService)
.Where(t => !t.IsAbstract).AsImplementedInterfaces().PropertiesAutowired();
var container=builder.Build();
//注册在DepandencyResolver中
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
  • MVC下的使用
  1. 为自定义ModelBinder注入,还可以使用builder.RegisterModelBinders()等。

  2. 在Controller中只要声明Service的属性即可,AutoFac会自动完成属性注入

    public class DefaultController : Controller
    {
    public ZSZ.Common.IUserService userService { get; set; }
    // GET: Default
    public ActionResult Index()
    {
      return View();
    }
    }

    并且在ActionFilter中也可以这样使用属性注入

  3. 只有AutoFac创建的对象才有可能进行自动属性的赋值;但是在没有注入的地方,如果想获取对象,可以这样:

ICityService cityService =DependencyResolver.Current.GetService<ICityService>()


  4. 如果在quartz等单独的线程中,无法通过DependencyResolver.Current.GetService<ICityService>()获取,可以使用

var container = AutofacDependencyResolver.Current.ApplicationContainer;
using (container.BeginLifetimeScope())
{
cityService = container.Resolve<ICityService>();
}

AutoFac与ASP.NET MVC结合使用的更多相关文章

  1. IoC容器Autofac(5) - Autofac在Asp.net MVC Filter中的应用

    Autofac结合EF在MVC中的使用,上一篇IoC容器Autofac(4) - Autofact + Asp.net MVC + EF Code First(附源码)已经介绍了.但是只是MVC中Co ...

  2. IoC容器Autofac - Autofac + Asp.net MVC + EF Code First(转载)

    转载地址:http://www.cnblogs.com/JustRun1983/archive/2013/03/28/2981645.html  有修改 Autofac通过Controller默认构造 ...

  3. [转]ASP.NET MVC IOC 之AutoFac攻略

    本文转自:http://www.cnblogs.com/WeiGe/p/3871451.html 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用A ...

  4. ASP.NET MVC IOC 之AutoFac攻略

    一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天,发现这个东东确实是个高大上的IOC容器~ Autofa ...

  5. Ioc容器Autofac系列(2)-- asp.net mvc中整合autofac

    经过上篇蜻蜓点水的介绍后,本篇通过实例快速上手autofac,展示当asp.net mvc引入了autofac之后会带来什么. 创建Asp.net MVC并引入Autofac 首先,创建一个MVC站点 ...

  6. Asp.net mvc中整合autofac

    创建Asp.net MVC并引入Autofac 首先,创建一个MVC站点,为方便起见,选初始带HomeController和AccountController的那种.然后通过NuGet或到Autofa ...

  7. Asp.Net Mvc使用Autofac实现依赖注入

    在asp.net mvc控制器中使用Autofac来解析依赖 如下Controller中使用构造函数依赖注入接口IPeople : public class AutoFacController : C ...

  8. ASP.NET MVC IOC 之AutoFac

    ASP.NET MVC IOC 之AutoFac攻略 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天, ...

  9. Asp.Net MVC 之 Autofac 初步使用1

    Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个: 优点: 它是C#语言联系很紧密,也就是说C#里的很多编程方式都可以为Autofac使用 较低的学习曲线,学习它非常的简单, ...

随机推荐

  1. Android适配文件dimen自动生成代码

    1:保存下,别人的code import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputSt ...

  2. RAP开发入门-运行过程简析(三)

    今天通过标准的RAP程序来简单分析下RAP的启动过程 1.新建一个标准的rap plugin-in 项目: 得到的项目结构大概如下: run confi..->..add bundle(配置好b ...

  3. 安装mysql-python的遇到的问题

    最近更新环境后遇到安装mysql-python的问题,感觉挺折腾的,记录一下. 安装mysql-python的时候一直提示下面的错误 _mysql.c() : fatal error C1083: C ...

  4. (转)RabbitMQ学习之Headers交换类型(java)

    http://blog.csdn.net/zhu_tianwei/article/details/40923131 Headers类型的exchange使用的比较少,它也是忽略routingKey的一 ...

  5. jdbc转账操作

    public class cs{ public static void main(String[] args){ try{ Connection conn=JdbcUtils.getConnectio ...

  6. 换个语言学一下 Golang (2)——基础语法

    Go 标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号.比如下面的hello world就是由 6 个标记组成: 行分隔符 在 Go 程序中,一行代表一个语句结束.每个语句 ...

  7. .apply和.call用法和区别

    apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这 ...

  8. Here comes Treble: A modular base for Android

    On the Android team, we view each dessert release as an opportunity to make Android better for our u ...

  9. VS Code中html 如何查找标签(5)

    1  添加几个标签 <body> <span>第一个span标签</span> <p>这是第一个p标签</p> <span>第二 ...

  10. java 常用API 时间 练习

    package com.orcal.demc01; import java.util.Date; public class Xuexi { public static void main(String ...