如何序列化复杂对象并将它们放在ViewState中?

时间:2013-05-09 20:27:34

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

我有一个List<SPSection>类型的对象,SPSection是一个包含stringList<SPListItem>的自定义类,SPListItem是一个SharePoint对象代表一个项目。

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

由于

1 个答案:

答案 0 :(得分:0)

请勿执行此操作。 SPListItem个实例无法在请求之间保留。它们取决于相应的SPList实例,而后者又取决于SPWeb + SPSite,它们都会自动实例化并通过SPContext提供。

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