autofac为MVC提供依赖注入,基于多层架构+mvc

Autofac是应用于.Net平台的依赖注入(DI,Dependency Injection)容器,具有贴近、契合C#语言的特点!

DAL中有一个userinfoDAL.cs
public class userinfoDAL:IDAL.IUserinfo
    {
        public string getUserType(int Id) {
            if (Id == 1) return "1号首长";
            return "政委";
        }
    }


类库IDAL中对应了一个接口 IUserinfo
public interface IUserinfo
    {
        string getUserType(int Id);
    }
}


建立一个mvc 3项目
public class HomeController : Controller
    {
        private IDAL.IUserinfo _userinfo;
        public HomeController(IDAL.IUserinfo userinfo) {
            _userinfo = userinfo;
        }


        public ActionResult Index()
        {
            ViewData["message"] = _userinfo.getUserType(1);
            return View();
        }


    }

 

在mvc3的Global.asax中加入配置的代码

 

protected void Application_Start()
        {
            //注入
            ContainerBuilder builder = new ContainerBuilder();
            builder.RegisterControllers(Assembly.GetExecutingAssembly());
            builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).AsImplementedInterfaces();
            builder.RegisterType<userinfoDAL>().As<IUserinfo>().SingleInstance();//单列
            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            //注入代码结束

            AreaRegistration.RegisterAllAreas();

            // 默认情况下对 Entity Framework 使用 LocalDB
            Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }

运行程序即可显示结果如下图(简单测试的结果)

 

autofac为MVC提供依赖注入,基于多层架构+mvc - 榕树下 - 你的?,我的?
 
你需要引用到的组件是
using Autofac;
using Autofac.Integration.Mvc;

可以参考到:www.51tietu.net 的实现模式

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值