.Net Core依赖注入

 

依赖注入来自于ServiceCollection这个类
ServiceCollection server=new ServiceCollection();
server.AddTransient() //瞬时,每一次获取都是一个新的对象
server.AddSingleton()
server.AddSingleton(new class)  //单例,可以自己传入单例的具体对象或者让框架帮助你创建一个
server.AddScoped() //范围,出这个范围就销毁,在.net core中是一次请求就销毁

  

 

 

AddScoped的用法,跟其他两个都不一样。
GetService<T>();获取依赖注入的对象的实例,通常是接口也就是注册时第一个类,如果获取失败则返回null
GetRequiredService();跟GetService一样,只是获取失败就直接抛异常
GetServices<T>(); 如果这个接口有多个实现类,那么就会全部返回,返回类型为Enumerable<T>

2、[FromServices]的使用
  如果在控制器中,你不想全局使用DI注入,你只想给一个Action使用,那么你可以在你使用的Action方法参数内上加上[FromServices] ID注入类
     [HttpGet]
        public IActionResult GetStrings([FromServices]IGetMiss miss) 
        {
            Class aa = new Class(_miss);
            string r = aa.Name;
            return null;
        }

 

posted @ 2022-11-09 22:38  仲夏不凉爽  阅读(146)  评论(0编辑  收藏  举报