IOC 在Mvc中的使用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,IOC,是控制反转(Inversion of Control)的英文简写, 控制反转一般分为两种类型,依赖注入(Dependency Injection)和依赖查找(Dependency Lookup
千家信息网最后更新 2025年02月01日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 IEnumerableGetData()11 {12 return repos.GetData();13 }14 15 }
1 public interface IRepository2 {3 IEnumerableGetData();4 }
1 public class DataRepository : IRepository 2 { 3 4 public DataRepository() 5 { 6 7 } 8 9 public IEnumerableGetData()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 IEnumerablelist = 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安全错误
数据库的锁怎样保障安全
excle一键更新数据库
某网站的用户数据库泄露影响
收费系统用什么数据库好
便宜 云服务器
网络安全执法检查工作自查表
山东省职教高考网络技术类专业
birth在数据库中什么意思
手机网络安全防护在哪关
网络安全技术建设
网络安全靶机 target
数据库培训宣传文案范文
当前网络安全问题的应对方案
网络安全青少年日活动开展方案
wps作为数据库
1u服务器是什么意思
万方数据库怎么查找同义词
利用java做软件开发
物流网络技术书籍
多人共享桌面服务器
添加网络安全性选哪个
计算机网络安全存在的问题
铜梁区全过程软件开发服务公司
eps数据库是什么指标
山东纺织外贸软件开发
pop3服务器怎么设置身份验证
网络安全举报有奖
spss建立数据库
方舟服务器怎么改为pvp
ps4真人快打怎么连服务器
keps连接数据库