.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; }