我SimpleInjector用作我的IoC库.我DbContext根据网络请求注册,它工作正常.但是我有一个任务是在后台线程中运行它.所以,我有一个问题来创建DbContext实例.例如
Service1 有一个实例 DbContextService2 有一个实例 DbContext Service1并Service2从后台线程运行.Service1 获取实体并将其传递给 Service2Service2 使用该实体,但实体与之分离 DbContext实际上问题出在这里:Service1.DbContext与众不同Service2.DbContext.
当我在ASP.NET MVC中的一个单独的线程中运行任务时,似乎为每个调用SimpleInjector创建一个新实例DbContext.虽然一些IoC库(例如StructureMap)对于每个web-per-webrequest具有混合生活方式,但似乎SimpleInjector没有一个.我对吗?
你有什么想法解决这个问题SimpleInjector吗?提前致谢.
编辑:
我的服务在这里:
class Service1 : IService1 {
public Service1(MyDbContext context) { }
}
class Service2 : IService2 {
public Service2(MyDbContext context, IService1 service1) { }
}
class SyncServiceUsage {
public SyncServiceUsage(Service2 service2) {
// use Service2 (and Service1 and …Run Code Online (Sandbox Code Playgroud) c# dependency-injection inversion-of-control simple-injector