Pet*_*Lim 7 structuremap asp.net-mvc dispose
我想确定每个请求结束后,structuremap是否会处理我的DataContext.
这是我的设置
ForRequestedType<MyDataContext>().TheDefault.Is.OfConcreteType<MyDataContext>();
SelectConstructor<MyDataContext>(() => new MyDataContext());
Run Code Online (Sandbox Code Playgroud)
结构图会自动处理我的datacontext还是我需要手动调用Dispose?
我就是做这个的:
For<IUnitOfWork>()
.HybridHttpOrThreadLocalScoped()
.Use<BpReminders.Data.NH.UnitOfWork>();
For<ISession>()
.HybridHttpOrThreadLocalScoped()
.Use(o => ((BpReminders.Data.NH.UnitOfWork)o.GetInstance<IUnitOfWork>()).CurrentSession);
Run Code Online (Sandbox Code Playgroud)
和......
protected void Application_EndRequest(object sender, EventArgs e)
{
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();
}
Run Code Online (Sandbox Code Playgroud)
HybridHttpOrThreadLocalScoped在可用时使用HttpContext.
然后,StructureMap会查找所有内容.请记住在您的课程中实现IDisposable.
不,它不会自动处理它,除非您使用嵌套容器并处理保存上下文实例的容器。由上下文的创建者来处理它。创建者通常是代码调用的一部分ObjectContext.GetInstance<MyDataContext>,或者是使 StructureMap 将 DataContext 注入到对象之一的根方法。
常见的做法是为每个 HttpRequest 创建一个上下文,并在请求结束时释放该上下文。
| 归档时间: |
|
| 查看次数: |
2716 次 |
| 最近记录: |