C# 如何在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方法已

如何在StructureMap 2.6中为插件设置会话范围

在以前的版本中,它是通过以下方式完成的:

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会话缓存对象(每个用户会话都会获得一个唯一的对象,该对象在会话持续期间保持不变)。