![]() |
1
2
很不幸,没有绝对简单的方法可以做到这一点。 但是:asp.net会话状态机制是可扩展的,因此您可以设想编写自己的asp.net会话状态提供程序,该程序基本上使用datacontractSerializer,并将序列化对象存储到SQL Server(或任何其他存储区)中。 退房 MSDN Session-State Modes 和 Implementing a Session-State Store Provider . 切换到flick并不是一个简单的小问题,但它绝对是可行的。
或者只是用
|
![]() |
2
1
我认为您需要的是实现ISerializable并使用DataContractSerializer手动序列化。 请看下面的答案: Using WCF DataContract in MVC SessionState using AppFabric cache 在讨论使用appfabric(stateserver)时,同样的问题也适用于sqlsessionstatestore(所有oob状态提供程序都对复杂的对象图使用binaryformatter) 我只是在一个项目上做了这个,效果很好。(这很简单) 然而,在我的例子中,我不想只序列化标记为[datacontract]的项,因为我的[datacontract]类嵌套在整个层次结构中,我不想在每个级别包装所有这些实体。(datacontract项是服务引用dto,用作状态对象的备份数据)。相反,我只是简单地包装了根元素,它是我在会话中填充的项的一个成员。 我承认这有点难理解,所以我包含了下面的代码:
|
![]() |
J-man · 在每个页面上显示登录名和角色2 8 年前 |
![]() |
padh · 如何在ASP中会话为空时延长会话时间。净MVC? 8 年前 |
|
Jason Luong · 会话状态值未出现在我的标签中 9 年前 |
![]() |
user2029763 · 未写入会话ID。文件中没有空白 11 年前 |
![]() |
Jack · asp.net会话状态模式“SQLServer” 12 年前 |