IOC 在Mvc中的使用
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,IOC,是控制反转(Inversion of Control)的英文简写, 控制反转一般分为两种类型,依赖注入(Dependency Injection)和依赖查找(Dependency Lookup
千家信息网最后更新 2025年12月03日IOC 在Mvc中的使用
IOC,是控制反转(Inversion of Control)的英文简写, 控制反转一般分为两种类型,依赖注入(Dependency Injection)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。本文就简单说说IOC在MVC中 的依赖注入的使用方法。
我新建了一个mvc 项目在 HomeController 中这样写:
1 public DataService dataService { get; set; }2 3 public HomeController(DataService dataService)4 {5 this.dataService = dataService;6 }其中 DataService类是我写的一个提供数据的类:
1 public class DataService 2 { 3 private IRepository repos { get; set; } 4 5 public DataService(IRepository repo) 6 { 7 repos = repo; 8 } 9 10 public IEnumerable GetData()11 {12 return repos.GetData();13 }14 15 } 1 public interface IRepository2 {3 IEnumerable GetData();4 } 1 public class DataRepository : IRepository 2 { 3 4 public DataRepository() 5 { 6 7 } 8 9 public IEnumerable GetData()10 {11 List list = new List();12 list.Add("test1");13 list.Add("test2");14 list.Add("test3");15 list.Add("test4");16 list.Add("test5");17 list.Add("test6");18 return list;19 }20 } 然后运行项目,页面会出现这样一个结果:
报的错是接口没有注册,导致构造的时候出错。怎么解决呢?IOC可以完美解决。
首先添加相关的类库,右键 manager Nuget packages 搜索unity
添加以下两个,之后会发现项目新加了一些东西:
然后我们就可以做IOC 依赖注入了,
在UnityConfig.cs中的 RegisterTypes方法中添加 一句
1 Container.RegisterType
其中IRepository 是我们要注入的构造函数中参数的接口,而 DataRepository是这个接口的具体实现。
或者我这样写:
1 container.RegisterType(2 new InjectionConstructor(3 new ResolvedParameter ()4 ));
都是可以的。
这样 我们就能正确的运行这个项目,
Action中的代码:
1 public ActionResult Index()2 {3 IEnumerable list = dataService.GetData();4 return View(list);5 } View中:
1 @model IEnumerable2 @{ 3 ViewBag.Title = "Home Page"; 4 } 5 6 7 89 @foreach (var item in Model)10 {11
14- @item
12 }13
显示的效果:
项目
接口
方法
控制
运行
东西
两个
代码
使用方法
函数
参数
效果
数据
时候
简写
类型
结果
页面
英文
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
gmod僵尸感染服务器
运维工程师数据库同步
明日之后秋日森林服务器有多少人
软件开发属于前端还是后端输出物
描述数据库全体数据全局逻辑结构
奔奔上货怎么清空数据库
数据库插值
计算机网络技术要多少分
做软件开发技术路线
重庆移动城管软件开发电话
阳光网络技术有限公司
橙服务器
u8单位日记账是哪个数据库表
ar眼镜软件开发
城关区网络技术有限公司
镇江浪潮服务器咨询客服
网络安全培训基地是什么
通过电脑找不到服务器
学软件开发的教材
声誉好的新药数据库
山东综合软件开发直销价格
农行软件开发中心哪个好
如何设置sql数据库的登陆密码
洛阳市公安局网络安全
关乎网络技术上海有限公司
文献检索的数据库比较
数据库系统需要哪些特点
企业服务器网站靠什么来访问的
吃鸡服务器连接超时8.1.6
软件开发质量保证和质量控制