asp.net – 当使用HttpContextScoped()时,StructureMap不会处理
发布时间:2020-12-15 19:15:55 所属栏目:asp.Net 来源:网络整理
导读:我的目标是在ASP.NET MVC中根据HTTP请求拥有一个数据上下文(MainDbContext),并在请求结束时处理数据上下文. 我使用以下StructureMap配置: public static class ContainerConfigurer{ public static void Configure() { ObjectFactory.Initialize(x = { x.Fo
我的目标是在ASP.NET MVC中根据HTTP请求拥有一个数据上下文(MainDbContext),并在请求结束时处理数据上下文.
我使用以下StructureMap配置: public static class ContainerConfigurer { public static void Configure() { ObjectFactory.Initialize(x => { x.For<MainDbContext>().HttpContextScoped(); }); } } 每当我需要一个MainDbContext,我使用这个代码: var dbContext = ObjectFactory.GetInstance<MainDbContext>(); 这是按预期的方式工作:每个HTTP请求只创建一个数据上下文.问题是,MainDbContext在请求结束时没有被处理. 当HTTP请求完成时,如何配置我的ObjectFactory来处理数据上下文?或者这只是我需要在Global.asax中手动使用Application_EndRequest(). 更新 我刚刚尝试将以下代码添加到Global.asax中: protected virtual void Application_EndRequest() { ObjectFactory.GetInstance<MainDbContext>().Dispose(); } 正如预期的那样,这解决了这个问题.我仍然在想,是否有任何方法可以使用StructureMap自动执行. 解决方法
代替:
x.For<MainDbContext>().HttpContextScoped(); 尝试: x.For<MainDbContext>().HttpContextScoped().Use(() => new MainDbContext()); 通常也是需要数据库上下文的存储库类.所以代替ObjectFactory.GetInstance< MainDbContext>();让您的存储库采用一些接口db上下文,并配置StructureMap将MainDbContext注入它们.然后使StructureMap将存储库注入控制器,… 在Application_EndRequest中: protected void Application_EndRequest() { ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 目的是什么?
- 有没有办法检查WebResponse而不影响.NET中的底层响应流?
- 关于asp.net调用gemalto超级狗api的具体实现
- ‘ASP._Page_sitecore_shell_client_Speak_Layouts_Layouts
- asp.net – 查找上一个和下一个兄弟控件
- ASP.Net表单身份验证 – 在超时时转到登录页面
- asp.net-mvc – 部署的ASP.NET MVC 4项目不会运行
- ASP.NET应用程序中需要定时炸弹
- asp.net – WCF服务支持文件jsdebug无法加载
- asp.net-mvc-2 – 无论有没有nunit,mspec会更好吗?
推荐文章
站长推荐
- asp.net-mvc-3 – 用于ASP.NET MVC的Razor View
- 如何从TeamCity预编译ASP.NET Web应用程序?
- asp.net-mvc – mvc route actionlink url使用na
- Linq用另一个值替换null /空值
- asp.net-mvc – 没有区域的ASP.NET Web API中的多
- 隐藏ASP.NET网站中的页面URL
- asp.net – 根据DropDownList选择验证TextBox
- asp.net-mvc-3 – 在ASP.NET MVC中本地化/翻译路
- 这个ASP.NET顾问知道他在做什么?
- asp.net – WebForm_DoPostBackWithOptions没有使
热点阅读