结构映射httpessionlifecycle对象序列化

本文关键字:序列化 对象 httpessionlifecycle 映射 结构 | 更新日期: 2023-09-27 18:06:34

我使用StructureMap来存储会话对象:

config.For<SessionContext>().LifecycleIs(new HttpSessionLifecycle());

一切工作正常,所以我可以很容易地检索会话对象与DI。

但是现在我需要将会话从进程内切换到数据库,但是我收到以下错误:

无法序列化会话状态。在《永远的美国》和SQLServer模式,ASP。. NET将序列化会话状态对象,因此,不可序列化的对象或MarshalByRef对象是不允许的。同样的限制也适用于类似的序列化由自定义会话状态存储在' custom '模式下完成。--->System.Runtime.Serialization.SerializationException:类型"StructureMap.Pipeline。MainObjectCache' in Assembly 'StructureMap版本=2.6.2.0,文化=中性,PublicKeyToken=e60ad81abae3c223' is未标记为可序列化。

我该如何解决这个问题?

结构映射httpessionlifecycle对象序列化

问题出在StructureMap上。我将[Serializable]属性添加到MainObjectCache类和其他一些类中,并对其进行了测试。现在起作用了。修复可以在这个pull request中找到。

我希望@Joshua Flanagan能尽快将这些更改合并到主分支中,这样问题就能最终解决。

编辑:

谢谢,我已经把你的零钱(和其他一些人)拉进去了,并推了一个2.6.3释放。编辑你的答案,说这是一个在2.6.3和把它标记为被接受的答案。——约书亚·弗拉纳根