任何域对象都应该是不可序列化的吗?
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 - 如果这不是必需的,所以没有经过正确测试。以上是关于任何域对象都应该是不可序列化的吗?的主要内容,如果未能解决你的问题,请参考以下文章