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