任何域对象都应该是不可序列化的吗?

Posted

技术标签:

【中文标题】任何域对象都应该是不可序列化的吗?【英文标题】:Should any domain object, not be serializable? 【发布时间】:2010-09-25 08:02:39 【问题描述】:

有没有办法告诉编译器,我希望我的对象默认是可序列化的?

【问题讨论】:

【参考方案1】:

不,您需要使用 Serializable 属性来装饰对象。仅供参考,默认情况下所有对象都是 Xml 可序列化的。 Xml 序列化程序不需要该属性。

我不确定 DataContracts,但最后我检查了您是否也需要装饰它们。

【讨论】:

【参考方案2】:

几乎每个序列化引擎都想知道您的对象是否合适。这可以采取以下形式:

[Serializable]/ISerializable (BinaryFormatter,SoapFormatter) [Serializable]/IXmlSerializable(和public)(XmlSerializer[DataContract]/[MessageContract](或以上大部分)(DataContractSerializer 和变体)

AFAIK,没有办法避免这一步。

【讨论】:

您能解释一个不将对象标记为可序列化的场景吗? @DevelopingChris - 如果这不是必需的,所以没有经过正确测试。

以上是关于任何域对象都应该是不可序列化的吗?的主要内容,如果未能解决你的问题,请参考以下文章

MarshalByRefObject 是特殊的吗?

什么时候一定要implement Serializable?

是否允许在 React 上下文中存储不可序列化的对象?

序列化:找不到所需序列化对象的不可序列化组件

java中的序列化和反序列化

java的File类的对象是可序列化的吗?