XML序列化(OOP)优于LINQ to XML的优势?

时间:2013-08-18 20:28:16

标签: vb.net oop xml-serialization linq-to-xml

我从一个API导入xml数据并将xml数据发布到另一个API。

我的第一次尝试利用LINQ的嵌入值来转换相关值,如下所示:

Dim DetailXML = From product In ProductXML _
  Select <detail>
          <detail.stockcode><%= product.<sku>.Value %></detail.stockcode>
          <detail.stockqty><%= product.<quantity>.Value %></detail.stockqty>
          <detail.orderqty><%= product.<quantity>.Value %></detail.orderqty>
          <detail.gross><%= product.<total_inc_tax>.Value %></detail.gross>
          <detail.taxcode><%= DetailTaxCode %></detail.taxcode>
         </detail>

这是相当简洁的,它很容易理解,它只需要大约200行代码才能最终得到完美的效果。

根据本网站关于“最佳实践”的各种评论,我使用xml序列化将其重新开发为面向对象的解决方案。

我现在拥有所有相关表/字段的类/对象,以及完美的序列化的xml属性。

这是一项重大任务,最终结果是整个项目的代码大约多10倍,但实际导入/导出循环的代码却没有明显减少。

我的问题是为什么我要打扰? 在这种情况下,面向对象的方法有哪些实际优势(如果有的话)?

这不是一个空闲的问题:数据导入/转换/导出到API是IT通才的面包和黄油,这绝不是一个独特的项目。

感谢。

1 个答案:

答案 0 :(得分:0)

有人可能会说,与使用XML文字自己创建XML相比,创建一些对象更干净,更简洁,更不容易出错。此外, C#的人没有XML文字(我很羡慕你)。

在我看来,如果您还需要反序列化

XmlSerializer最常用。使用XLINQ解析XML不会产生最佳的代码质量。

如果您需要同时保存和加载

XmlSerializer也很有用。例如,你可以非常好地使用它作为配置存储。

您还可以从XML架构生成类。如果有可用,这通常是最好的选择。