【发布时间】:2010-11-04 00:37:30
【问题描述】:
我希望创建一个 POCO [Serializable],但不希望在其类层次结构树中创建任何其他类成员。我知道有 [NonSerialized] 仅适用于字段,但有没有办法在 POCO 上使用 [Serializable] 排除它们或选择特定成员?
【问题讨论】:
标签: c# serialization poco class-hierarchy
我希望创建一个 POCO [Serializable],但不希望在其类层次结构树中创建任何其他类成员。我知道有 [NonSerialized] 仅适用于字段,但有没有办法在 POCO 上使用 [Serializable] 排除它们或选择特定成员?
【问题讨论】:
标签: c# serialization poco class-hierarchy
你应该看看DataContractSerializer;它使用“选择加入”方法进行序列化。
此外,阅读XmlSerializer vs DataContractSerializer: Serialization in Wcf 以获取示例以及DataContractSerializer 和XmlSerializer 之间的比较也是一个好主意。
XmlSerializer 已在 .Net 中 从 1.0 版开始并为我们服务 适用于远程处理、Web 的一切 服务,序列化到文件等。 但是在 .Net 3.0 中 DataContractSerializer 出现了。 突然间很多指导 建议我们应该使用它 旧的尝试和真正的 XmlSerializer。 Wcf 甚至使用它作为默认值 序列化机制。这 问题是,“真的更好吗?”。 结论是肯定的,否定的。最喜欢 这取决于你的事情 实施和你需要什么。为了 Wcf,您应该更喜欢使用 数据合同序列化器。如果你需要 完全控制 xml 的外观 不过,你应该回到 XmlSerializer。
【讨论】: