我必须为所有类应用[Serializable()]属性,但我想知道有没有办法让全局类Serializable而不是为所有类单独应用这个属性?
不,没有办法在全球范围内应用此功能 - 您必须访问每种类型并添加属性。
然而:在全球范围内应用这个是一个非常非常糟糕的主意。准确地知道您要序列化什么,何时以及为什么非常重要 - 无论是针对会话状态,主持久性,缓存还是任何其他用例。声明如
我必须为所有类应用
[Serializable()]
属性
告诉我你目前无法控制你存储的内容。
此外,由于[Serializable]
(通常)映射到BinaryFormatter
,重要的是要知道有很多方法(当使用BinaryFormatter
时)可能会意外地将模型的意外部分拖到序列化数据中。其中最臭名昭着的是“事件”,但是:还有其他事件。
当我看到这类问题时,我设想的是你使用主数据模型中的类型作为你正在进入会话状态的东西,但坦率地说:这是一个错误 - 并导致这样的问题。相反,更可行的方法是创建一个纯粹为此目的而存在的单独模型:
[Serializable]
,如果您的提供商需要 - 或者其他任何元数据仅用于其存在的唯一目的