(五).netcore+vue loc —— .netcore自带的依赖注入
继续上一章,上一章里RoleController的构造函数里为了使用IBaseServices<SysRole>的实例,先实例化IBaseDao<SysRole>,这一章用依赖注入来简化代码
一、简单依赖注入
Startup的ConfigureServices加入
services.AddScoped(typeof(IBaseServices<>), typeof(BaseServices<>)); services.AddScoped(typeof(IBaseDao<>), typeof(BaseDao<>));
RoleController的构造函数改成如下
public RoleController(IBaseServices<SysRole> roleServices) { _roleServices = roleServices; }
项目运行起来,测试新增一个角色

结果成功!

二、利用反射批量注入
如果底层BaseDao提供的方法不满足功能的,需要另外写IService和Service,那一旦服务多了,注入的地方可以把几十个服务依次注入,还有一种简单的方式通过反射把IService和Service下的所有服务一下注入,这个后面有时间再来补充吧。
三、三种注入的生命周期
AddSingleton,单例:项目启动-项目关闭 相当于静态类 只会有一个
AddScoped,作用域:请求开始-请求结束 在这次请求中获取的对象都是同一个
AddTransient,瞬时:请求获取-(GC回收-主动释放) 每一次获取的对象都不是同一个
浙公网安备 33010602011771号