有没有人有一个使用 InstancePerApiRequest for DbContext 与 autofac 进行Sharprepository 集成的工作示例?
我正在注册我的dbcontext:
builder.RegisterType<AuditTestEntities>().As<DbContext>().InstancePerApiRequest();
如果我删除 InstancePerApiRequest,sharprepository 就能够获得一个 dbcontext。但是使用 InstancePerApiRequest,我会收到下面粘贴的错误消息。基本上错误的症结在于,我怀疑,sharprepository 进行调用的方式:
从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.
完整的错误堆栈:
iisexpress.exe 错误:0:Operation=DefaultHttpControllerActivator.Create,Exception=System.InvalidOperationException:尝试创建类型为“AccountController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。---> Autofac.Core.DependencyResolutionException:在“AccountRepository”类型上调用构造函数“Void .ctor()”时引发异常。---> 无法使用“AutofacDependencyResolver”解析类型“System.Data.Entity.DbContext”。确保您已为此类型配置了 Ioc 容器。查看 InnerException 以了解更多详细信息。(有关详细信息,请参阅内部异常。)---> SharpRepository.Repository.Ioc.RepositoryDependencyResolverException:无法解析类型“System.Data.Entity.DbContext” 使用“AutofacDependencyResolver”。确保您已为此类型配置了 Ioc 容器。查看 InnerException 以了解更多详细信息。---> Autofac.Core.DependencyResolutionException:从请求实例的范围内看不到标签匹配“AutofacWebRequest”的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身. 从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身. 从请求实例的范围中看不到带有与“AutofacWebRequest”匹配的标记的范围。这通常表明注册为 per-HTTP 请求的组件正在由 SingleInstance() 组件(或类似场景)请求。在 Web 集成下,始终从 DependencyResolver.Current 或 ILifetimeScopeProvider.RequestLifetime 请求依赖项,而不是从容器本身.