【发布时间】:2019-07-26 16:19:27
【问题描述】:
我正在使用简单的注射器。
我有一个也有 ApiControllers 的 mvc 项目。
这是我的设置:
public static class SimpleInjectorWebApiInitializer
{
/// <summary>Initialize the container and register it as Web API Dependency Resolver.</summary>
public static void Initialize()
{
var container = new Container();
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();
InitializeContainer(container);
container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
// This is an extension method from the integration package.
container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
container.Verify();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
// GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
}
private static void InitializeContainer(Container container)
{
container.Register<DbContext, CoreContext>(Lifestyle.Scoped);
container.Register<IUnitOfWork, UnitOfWork>(Lifestyle.Scoped);
}
}
但是这给了我错误:
配置无效。以下诊断警告是 报道: -[生活方式不匹配] UnitOfWork (Async Scoped) 依赖于 CoreContext (Transient)。
【问题讨论】:
-
为什么注释掉webapi的依赖解析器?
-
您能否发布完整的异常消息?完整的消息更长。
标签: dependency-injection simple-injector