(五).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回收-主动释放) 每一次获取的对象都不是同一个

 

posted @ 2021-04-21 20:09  倪努力  阅读(487)  评论(0)    收藏  举报