ASP.NET Mvc项目用法: 先在Global.asax里面写类型注册
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Web; using System.Web.Mvc; using System.Web.Routing; using Autofac;//Autofac版本4.5 using Autofac.Integration.Mvc; namespace WebAutoFaceTest { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); var builder = new ContainerBuilder(); //注册业务层 var bll = Assembly.Load("BLL"); //AsImplementedInterfaces接口类型的注入方式 builder.RegisterAssemblyTypes(bll).AsImplementedInterfaces().InstancePerLifetimeScope(); //注册控制器 builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()); //创建容器 IContainer container = builder.Build(); //设置依赖注入点 DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } } }调用:
public class HomeController : Controller { /// <summary> /// 构造函数注入被调用者 /// </summary> private IAnimateRun animate; public HomeController(IAnimateRun _animate) { animate = _animate; } // GET: Home public ActionResult Index() { string info = animate.Run(); ViewBag.msg = info; return View(); } }