【问题标题】:How to serialize complex objects and put them in a ViewState?如何序列化复杂对象并将它们放入 ViewState?
【发布时间】:2013-05-09 20:27:33
【问题描述】:

我有一个 List<SPSection> 类型的对象,SPSection 是一个自定义类,其中包含一个 string 和一个 List<SPListItem>SPListItem 是一个表示项目的 SharePoint 对象。

我想将其存储在ViewState 中,但我不知道该怎么做。有没有办法将其序列化或将其转换为一些二进制字符串,以便我可以将它放在ViewState 中。另外,当从ViewState 取回值时,如何将其转换回List<SPSection>

谢谢

【问题讨论】:

  • 到目前为止你是如何尝试序列化它的?

标签: asp.net xml serialization sharepoint-2010 xml-serialization


【解决方案1】:

不要这样做。 SPListItem 实例不能在请求之间保留。它们依赖于各自的SPList 实例,而后者又依赖于SPWeb + SPSite,两者都自动实例化并通过SPContext 提供。

您可以做的是在请求之间保留项目IDs。您的自定义类需要是二进制可序列化的,即标有[Serializable] 接口。然后,您只需将给定键下的对象存储到视图状态:ViewState["MyObjects"] = myObjects;

【讨论】:

  • 我看到您可以在SPList 上使用GetDataTable 并可能过滤特定项目。此外,对于事件接收器,我发现 this article 显示使用属性包上的 GetEnumerator 来构建一组 DictionaryEntry 项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 2023-01-31
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多