C# 如何在StructureMap 2.6中为插件设置会话范围?
如何在StructureMap 2.6中为插件设置会话范围 在以前的版本中,它是通过以下方式完成的:C# 如何在StructureMap 2.6中为插件设置会话范围?,c#,session,structuremap,session-scope,C#,Session,Structuremap,Session Scope,如何在StructureMap 2.6中为插件设置会话范围 在以前的版本中,它是通过以下方式完成的: For<ISomeObject>().CacheBy(StructureMap.InstanceScope.HttpSession).Use<SomeObject>(); For().CacheBy(StructureMap.InstanceScope.HttpSession).Use(); 但是,Visual Studio会显示一条警告,告诉您,CacheBy方法已
For<ISomeObject>().CacheBy(StructureMap.InstanceScope.HttpSession).Use<SomeObject>();
For().CacheBy(StructureMap.InstanceScope.HttpSession).Use();
但是,Visual Studio会显示一条警告,告诉您,
CacheBy
方法已被弃用,可以使用LifecycleIs
方法代替。我相信这样做可以达到以下目的:
For<ISomeObject>()
.HttpContextScoped()
.Use<SomeObject>();
()
.HttpContextScoped()
.使用();
2.6中的语法是:
c.For<ISomeObject>().LifecycleIs(new HttpSessionLifecycle()).Use<SomeObject>();
c.For().LifecycleIs(新的HttpSessionLifecycle()).Use();
我会试试,然后告诉你。谢谢。它似乎没有将其保存为会话范围,因为我没有可用于下一个请求的对象。会话作用域和HttpContext作用域之间有什么区别吗?@guillegr123-HttpSessionLifecycle和HttpContextLifecycle之间的区别在于,HttpContextLifecycle
缓存每个Http请求创建的对象(每个新Http请求获得一个新对象),而HttpSessionLifecycle
会为每个Http会话缓存对象(每个用户会话都会获得一个唯一的对象,该对象在会话持续期间保持不变)。