asp.net-mvc-3 – 任务/线程的Ninject Scope问题
发布时间:2020-12-15 23:57:48 所属栏目:asp.Net 来源:网络整理
导读:我有一个MVC3项目,它使用Ninject,实体框架和工作单元模式与服务层. 我的AsyncService类有一个函数可以启动后台任务,例如,将用户添加到用户存储库. 我当前的问题是,在我收到DbContext已被丢弃的错误之前,任务只能正确运行几秒钟. 我注入了Ninject的InRequestS
我有一个MVC3项目,它使用Ninject,实体框架和工作单元模式与服务层.
我的AsyncService类有一个函数可以启动后台任务,例如,将用户添加到用户存储库. 我已经读过InThreadScope(),但是我不确定如何在我的MVC项目中正确实现它. 我的问题是:在我的任务中使用Ninject的正确方法是什么? public class AsyncService { private CancellationTokenSource cancellationTokenSource; private IUnitOfWork _uow; public AsyncService(IUnitOfWork uow) { _uow = uow; } public void AsyncStartActivity(Activity activity) { ...snip... this.cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = this.cancellationTokenSource.Token; var task = Task.Factory.StartNew(() => { foreach (var user in activity.UserList) { this._uow.UserRepository.Add(new User() {UserID = user}); } this._uow.Save(); },cancellationToken); ...snip... } } 解决方法
InRequestScope’d对象在请求结束时处理,因此在这种情况下不能使用它. InThreadScope也不适合将UoW重用于多个任务.
您可以做的是将AsyncService声明为使用NamedScope扩展的所有对象的作用域对象. 见http://www.planetgeek.ch/2010/12/08/how-to-use-the-additional-ninject-scopes-of-namedscope/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 为什么我的textBoxFor使用我的路由数据?
- asp.net-mvc-3 – 带Razor的条件显示元素
- 垃圾收集 – ASP.NET核心Web应用程序(.NET Framework)中app
- asp.net-mvc – 无法在Web服务器上启动调试. Web服务器找不
- asp.net-mvc – ASP.NET MVC 3:验证获取消息列表
- asp.net-mvc – 编辑模板LabelFor – 显示值而不是名称
- 单元测试ASP.NET WebAPI控制器的POST操作
- asp.net-mvc-2 – 如何在ASP.NET MVC2中为Html.LabelFor()添
- asp.net-web-api – 使用带有ASP.Net标识的Autofac将Applic
- asp.net-mvc – asp.mvc中渲染的区别是什么
推荐文章
站长推荐
- ASP .NET – Eval()背后发生了什么?
- asp.net-mvc-3 – 如何在MVC应用程序中使用POCO
- asp.net菜单skiplink
- asp.net-web-api – GlobalConfiguration – 尝试
- 强制ASP.Net MVC Bundle以某种顺序呈现javascrip
- .net – App_LocalResources如何使用MVC?
- asp.net-mvc-4 – 如何通过ASP.NET MVC中的Simpl
- asp.net-mvc-3 – ASP.NET MVC 3.0 – 为什么在视
- 将MVC 2.0迁移到MVC 3.0 RC后使用Razor的问题
- asp.net-core – 使用AspNet Core 2.0进行Google
热点阅读