当我在viewstate中存储dataview时,.net显示错误“Dataview未在system.data中标记为可序列化,但是当我将它存储在会话中时,它是否完美? 它背后的原因是什么?哪些是未标记为的其他对象 “可序列化”?
答案 0 :(得分:7)
这意味着您要存储的对象(DataView)未标有SerializableAttribute。
现在,您使用ViewState而不是使用Session收到此错误的原因是因为ViewState 始终序列化,但对于Session不一定如此。 In-Process个会话存储在服务器的内存中,不需要序列化。必须序列化SQLServer个会话以存储在数据库中。
因此,只要您想在ViewState(或序列化会话)中存储对象,就必须使用SerializableAttribute标记该对象。