WebApi+SimpleInjector+OWIN我正在尝试在WebAPI项目中使用SimpleInjector和OWIN。但是,以下ConfigureAuth行失败app.CreatePerOwinContext(container.GetInstance);例外情况是ApplicationUserManager注册了“WebAPI请求”生活方式,但该实例是在WebAPI请求的上下文之外请求的。我正在使用container.RegisterWebApiRequest();关于容器初始化。(如果我使用Register而不是RegisterWebApiRequest,则不会出现异常,但根据简单的注入器文档,这不是首选方式)据我所知,ApplicationUserManager需要使用CreatePerOwinContext进行注册,以便OWIN正常工作。我想知道如果SimpleInjector在启动期间无法解析实例,我们如何使用SimpleInjector执行此操作。我已经尝试过这个SOanswer中的方法,但它失败并显示相同的消息。知道如何解决这个问题吗?我使用下面的代码来解决这个问题。publicstaticvoidUseOwinContextInjector(thisIAppBuilderapp,Containercontainer){//创建一个OWIN中间件来创建执行上下文范围app.Use(async(context,next)=>{using(varscope=container.BeginExecutionContextScope()){等待next.Invoke();}});然后调用app.UseOwinContextInjector(container);注册依赖项后立即。感谢这篇文章你可能会发现这个问题很有用。这个想法是为了避免使用OWIN来解决依赖关系,因为它会给控制器代码带来一些混乱。以下使用OWIN解析UserManager实例的代码是服务定位器反模式:publicApplicationUserManagerUserManager{get{return_userManager??HttpContext.GetOwinContext().GetUserManager();}设置{_userManager=值;不是依赖OWIN来解析依赖关系,而是将所需的服务注入控制器的构造函数并使用IDependencyResolver为您构建控制器。本文演示如何在ASP.NETWebAPI中使用依赖注入。以上就是C#学习教程分享的全部内容:WebApi+SimpleInjector+OWIN。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
