在一个asp.net core webapi项目的集成测试中遭遇下面的异常,请问如何解决?
Cannot access a disposed object. A common cause of this error is disposing a context that was resolved from dependency injection and then later trying to use the same context instance elsewhere in your application. This may occur if you are calling Dispose() on the context, or wrapping the context in a using statement. If you are using dependency injection, you should let the dependency injection container take care of disposing context instances.
[xUnit.net 00:00:03.2384249] Object name: 'EfUnitOfWork'.
[xUnit.net 00:00:03.2425838] Stack Trace:
依赖注入用的是 services.AddScoped
翻转控制器已经释放了目标对象了,参考修改对象生命周期的方法
有个 Repository 实现了 IDisposable 接口,在实现中调用了 _unitOfWork.Dispose()
方法,从而引起这个问题
我现在也碰到了这样的错误。业务场景是Dbcontext,注入的时候生命周期是LifeScope。在业务中开启了多个T异步Task去执行操作DbContext,导致这样的错误。
但是我在获取DbContext的时候,是创建了Scope之后。这样也会出现线程问题吗?
建议贴出相关代码