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

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

【问题讨论】:

    标签: c# .net-3.5 serialization c#-3.0


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 您能解释一个不将对象标记为可序列化的场景吗?
      • @DevelopingChris - 如果这不是必需的,所以没有经过正确测试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多