如何使用 XmlSerializer 反序列化到现有实例?

2024-01-07

是否可以使用 XmlSerializer 将其数据反序列化为类的现有实例而不是新实例?

这在两种情况下会很有帮助:

  1. 轻松地将两个 XML 文件合并到一个对象实例中。
  2. 让对象构造器本身成为从 XML 文件加载其数据的构造器。

如果默认情况下不可能,则应该通过使用反射来工作(在反序列化后复制每个属性),但这将是一个丑陋的解决方案。


基本上,你不能。XmlSerializer是严格的建设性的。您可以做的唯一有趣的事情是定制XmlSerializer是为了实施IXmlSerializable并自己做所有事情 - 这不是一个有吸引力的选择(它仍然会使用默认构造函数等创建新实例)。

Is xml严格要求?如果您可以使用不同的格式,protobuf网络 http://code.google.com/p/protobuf-net/支持将片段合并到现有实例中,如下所示:

Serializer.Merge(source, obj);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 XmlSerializer 反序列化到现有实例? 的相关文章

随机推荐