我必须对所有类都应用[Serializable()]属性,但是我想知道有什么方法可以使类全局可序列化,而不是对所有类单独应用此属性吗?
答案 0 :(得分:2)
否,没有一种全局应用此方法的方法-您必须访问每种类型并添加属性。
但是:在全球范围内应用它是一个真的,真的坏主意。确切知道您要序列化的内容,时间和原因非常重要-无论这是用于会话状态,主要持久性,缓存还是任何其他用例。像
这样的语句我必须对所有课程都应用
[Serializable()]
属性
告诉我您目前不是可以控制您所存储的内容。
另外,由于[Serializable]
(通常)映射到BinaryFormatter
,因此了解使用很多方式非常重要(使用BinaryFormatter
时)在这种情况下,可能会将模型的意外部分拖到序列化数据中。其中最臭名昭著的是“事件”,但是:还有其他事件。
当我看到这种类型的问题时,我设想的是,您正在将主数据模型中的类型用作进入会话状态的对象,但是坦率地说:这是一个错误-并引发类似这样的问题。相反,更可操作的方法是创建一个为此目的纯存在的单独模型:
[Serializable]