• 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>();
}

最新文章

  1. vsftp简单学习思考
  2. Struts2 Result 类型和对应的用法详解
  3. VS2010 AppCode文件夹问题
  4. HDU1075
  5. MongoDB学习笔记-01 简介、安装
  6. 使用动态类型dynamic让你的省了很多临时类
  7. Codeforces Round #313 (Div. 2) D. Equivalent Strings
  8. sql server系统表详细说明
  9. 经典线程同步 事件Event
  10. VBA Excel 常用 自定义函数
  11. Z-Stack ZMain学习
  12. nginx如何解决超长请求串
  13. 用到的Python运算符
  14. 2015 Multi-University Training Contest 6
  15. Spring自学教程-声明式事务处理(六)
  16. 从一个针对ASP.NET MVC框架的Controller.Action的请求处理顺序来说整个请求过程。
  17. u盘分区装机版
  18. 06-Python入门学习-元组、字典、集合类型
  19. 【C++学习笔记】变量初始化规则
  20. (php)实现万年历

热门文章

  1. Python 之 风格规范(Google )
  2. Goldengate升级之目标端(replicat端)升级
  3. css 添加阴影
  4. win 2016 添加系统组件注册表,
  5. Jquery- scrollTop()一个问题:
  6. day26 hashlib, logging
  7. 网上的CSS例子编写都不太严谨,如*{ margin:0;padding:0;}
  8. java:递归算法
  9. linux 编译网卡驱动
  10. vue 动态获取div宽高有时候为0的情况