XML 序列化/反序列化最佳实践:XmlSerializer 还是 Linq To XML?

发布于 2024-11-09 05:48:44 字数 83 浏览 4 评论 0原文

如今,将域对象序列化/反序列化到 xml 文档的最佳方法是什么? XmlSerializer 还是 Linq To XML?每种解决方案的优缺点是什么?

Nowadays, what's the best way to serialize/deserialize domain objects into an xml document? XmlSerializer or Linq To XML? What are the pros and cons of each solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

留蓝 2024-11-16 05:48:44

以下是我认为目前使用 Linq to XML 的主要好处。

XmlSerializer 需要默认(无参数)构造函数。因此,如果您要执行任何类型的控制反转并通过构造函数将依赖项传递到类中,则还需要有一个默认构造函数来绕过这些依赖项的注入。这有点违背了使用构造函数注入的全部目的。

当然,使用 Linq to XML,您需要编写自己的序列化代码,但我已经使用 FromXmlToXml 等一组方法或只是一个带有 getter 和 setter 的 Xml 属性,用于对需要保存的字段进行序列化。我喜欢在代码中进行控制,而不是必须在某些属性上使用属性来忽略它们。

Here's the main benefit I see for using Linq to XML nowadays.

XmlSerializer requires a default (parameter-less) constructor. So, if you're doing any kind of inversion of control and passing dependencies into your class via the constructor, you'll need to also have a default constructor that bypasses the injection of those dependencies. That kinda defeats the whole purpose of using constructor injection.

Of course, with Linq to XML, you'll need to write your own serialization code, but I've done that with either a set of methods like FromXml and ToXml or simply an Xml property with getter and setter that do the serialization of exactly the fields that need to be saved. I like having that control in code instead of having to use attributes on some properties to have them ignored.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文