autofac为MVC提供依赖注入,基于多层架构+mvc
来源:互联网 发布:mac写脚本用什么软件 编辑:程序博客网 时间:2024/05/16 12:53
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);
}
运行程序即可显示结果如下图(简单测试的结果)
using Autofac.Integration.Mvc;
可以参考到:www.51tietu.net 的实现模式
- autofac为MVC提供依赖注入,基于多层架构+mvc
- MVC | 依赖注入 AutoFac (构造函数注入)
- MVC+ICO AutoFac 依赖注入框架
- 【.Net码农】【MVC】多层架构+MVC+EF+AUTOFAC+AUTOMAPPER
- Asp.mvc(三) ~ 使用 Autofac 实现依赖注入
- asp.net mvc Autofac 依赖注入框架 使用
- 从零开始写C# MVC框架之--- 用autofac ioc 容器实现依赖注入
- 使用Autofac实现MVC、WebApi的注入
- mvc 实现依赖注入
- 基于多层架构的asp.net mvc项目的搭建
- 从MVC讲到多层架构
- 依赖注入容器Autofac
- Spring MVC学习--依赖注入
- .NET MVC 依赖注入 来龙去脉
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- MVC设计模式与多层架构
- Autofac+Log4net依赖注入步骤
- 避免网站在IE6中出现‘无法打开站点,已终止操作’的JS问题
- 关于设置virtualbox 分辨率使其和系统一样分辨率的方法
- 关于CSS设置不显示苹果和google等浏览器input文本框边框自动产生颜色的问题
- 关于虚拟机安装 linux centOS Unable to boot – please use a kernel appropriate for your CPU
- 关于linux CentOS 6.3安装教程
- autofac为MVC提供依赖注入,基于多层架构+mvc
- MVC中使用RadioButtonFor
- 面试遇到的问题
- 让没有float的div背景颜色设置生效
- 关于.NET MVC中带扩展名路由设置失效的问题的问题
- 皮肤控件IrisSkin4.dll调用样例
- 关于SVN项目管理的安装使用以及运用思想
- 一个另类有效的SQL2005转到SQL2000的方法
- 老话题,WIN7 配置PHP5环境