C# DbContext与Autofac
我在Autofac中注册System.Data.Entity.DbContext时遇到问题。 我的类的构造函数是:C# DbContext与Autofac,c#,entity-framework,dependency-injection,C#,Entity Framework,Dependency Injection,我在Autofac中注册System.Data.Entity.DbContext时遇到问题。 我的类的构造函数是: public DeviceService(IDevice device) { _device = device; } public Device(DbContext con) { _localDb = con; } 我试过这个: _container = new ContainerBuilder(); _container.RegisterTy
public DeviceService(IDevice device)
{
_device = device;
}
public Device(DbContext con)
{
_localDb = con;
}
我试过这个:
_container = new ContainerBuilder();
_container.RegisterType<DbContext>().As<DbContext>().InstancePerLifetimeScope();
_container.RegisterType<Device>().As<IDevice>();
_container.RegisterType<DeviceService>().As<IDeviceService>();
_dependencyContainer = _container.Build();
\u container=newcontainerbuilder();
_container.RegisterType().As().InstancePerLifetimeScope();
_container.RegisterType().As();
_container.RegisterType().As();
_dependencyContainer=_container.Build();
但它不起作用,因为当我尝试解析\u dependencyContainer.resolve()
时,我遇到了以下异常:
“Autofac.Core.dependencResolutionException”类型的异常
在Autofac.dll中发生,但未在用户代码中处理
其他信息:激活时引发异常
WpfApplication2.DeviceService->WpfApplication2.Device->
System.Data.Entity.DbContext
我在谷歌找不到解决方案。解决方案是什么?我发现Autofac无法注入System.Data.Entity.DbContext。但是您可以插入该DbContext->MyContext:DbContext->
_container.RegisterType<MyContext>().AsSelf()
\u container.RegisterType().AsSelf()
你能展示dbcontext的构造函数吗?顺便说一句,你没有自己的dbcontext吗?你可以尝试将容器.RegisterType().As()更改为容器.RegisterType().AsSelf()它是EntityFramework的dbcontext,所以我不能展示那个dbcontext的构造函数。Pavel Anikhouski:这引发了同样的异常。