实现IDisposable接口类型的释放
DI只负责释放由其创建的对象实例
DI在容器或子容器释放时,会释放由其创建的对象实例
避免在根容器创建实现了IDisposable的瞬时服务(即GetService),因为这样做会在根容器中积累瞬时服务的实例,只有等根容器释放时这些实例才会被释放,这样会占用很多的应用资源。
1
2/*如果IOrderService是实现了IDisposable接口,通过根容器获取该服务时,该服务的实例会一直存在,直到根容器释放为止*/
app.ApplicationServices.GetService<IOrderService>();
- 避免手动创建实现了IDisposable的对象,然后放到容器中,因为这样做容器就不会管理我们创建对象的生命周期。