.NET Core IServiceScopeFactory子作用域是否会释放瞬态服务?
.NET DI子作用域的服务释放疑问
我在单例或后台服务中使用瞬态或作用域服务时,会通过子作用域来创建它们:
using var serviceScope = _serviceScopeFactory.CreateScope(); var foo = serviceScope.ServiceProvider.GetRequiredService<Foo>();
不过我看到CreateScope的API文档说明:
返回值:
控制作用域生命周期的IServiceScope。一旦该作用域被释放,所有从IServiceScope.ServiceProvider解析出的作用域服务也会被释放。
注意这里只提到了“作用域服务”,这让我产生疑问:是不是作用域容器不会释放瞬态服务,只会释放作用域服务?我之前一直以为子容器会释放它创建的所有服务,只有根容器会保留瞬态引用。
我习惯使用Autofac,.NET DI和它之间的一些细微差异让我有点困惑。
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

