【问题标题】:Serializing POCO Excluding Class Members序列化 POCO 排除类成员
【发布时间】:2010-11-04 00:37:30
【问题描述】:

我希望创建一个 POCO [Serializable],但不希望在其类层次结构树中创建任何其他类成员。我知道有 [NonSerialized] 仅适用于字段,但有没有办法在 POCO 上使用 [Serializable] 排除它们或选择特定成员?

【问题讨论】:

    标签: c# serialization poco class-hierarchy


    【解决方案1】:

    你应该看看DataContractSerializer;它使用“选择加入”方法进行序列化。

    此外,阅读XmlSerializer vs DataContractSerializer: Serialization in Wcf 以获取示例以及DataContractSerializerXmlSerializer 之间的比较也是一个好主意。

    XmlSerializer 已在 .Net 中 从 1.0 版开始并为我们服务 适用于远程处理、Web 的一切 服务,序列化到文件等。 但是在 .Net 3.0 中 DataContractSerializer 出现了。 突然间很多指导 建议我们应该使用它 旧的尝试和真正的 XmlSerializer。 Wcf 甚至使用它作为默认值 序列化机制。这 问题是,“真的更好吗?”。 结论是肯定的,否定的。最喜欢 这取决于你的事情 实施和你需要什么。为了 Wcf,您应该更喜欢使用 数据合同序列化器。如果你需要 完全控制 xml 的外观 不过,你应该回到 XmlSerializer。

    【讨论】:

    • 好答案(我已经删除了我的) - 只是添加(对于 OP):如果你想要严格的二进制序列化,你可以考虑 protobuf-net。
    • @Marc - protobuf-net 也是一个不错的选择,值得自己回答。如果您取消删除您的答案,我会投票赞成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2010-12-06
    • 2017-03-30
    • 2015-07-20
    • 1970-01-01
    • 2016-05-22
    相关资源
    最近更新 更多