【问题标题】:Serialization and attributes序列化和属性
【发布时间】:2011-08-04 18:58:19
【问题描述】:

何时应该使用 [Serializable] 属性将类标记为可序列化?该文档说不应继承该类。但是,我已将此属性与 XmlInclude 属性结合使用,因此我也可以序列化我的派生类。这是不正确的吗?

我正在使用 XmlSerializer 和 StreamWriter 类来序列化我的对象。

另外,我的理解告诉我,任何公共属性(get 和 sets)都将被序列化,其他字段将被忽略。这也是正确的吗?

任何指导将不胜感激。

谢谢

【问题讨论】:

    标签: c# .net serialization


    【解决方案1】:

    我应该什么时候将课程标记为 可使用 [Serializable] 进行序列化 属性?文件说 该类不应该被继承。 但是,我在 与 XmlInclude 结合 属性,所以我可以序列化我的 派生类也是如此。这是 不正确?

    我正在使用 XmlSerializer 和 StreamWriter 类来序列化我的 对象。

    对于 XML 序列化,您永远不需要 [Serializable] 属性。它仅用于格式化程序的序列化(例如BinaryFormatterSoapFormatter

    另外,我的理解告诉我任何公共属性(get 和 sets)都将被序列化,其他字段将被忽略。这也是正确的吗?

    这是正确的。只有公共读/写属性被序列化,而不是字段。

    【讨论】:

      【解决方案2】:

      XmlSerializer 不检查这个标志;答案是“当使用 BinaryFormatter(或其他几个;不多)而不实现 ISerializable 时”。

      大多数序列化程序不使用此标志。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-14
        • 2021-05-22
        • 2015-05-30
        • 2011-06-19
        • 2014-04-24
        • 2013-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多