我从一个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通才的面包和黄油,这绝不是一个独特的项目。
感谢。
答案 0 :(得分:0)
有人可能会说,与使用XML文字自己创建XML相比,创建一些对象更干净,更简洁,更不容易出错。此外, C#的人没有XML文字(我很羡慕你)。
在我看来,如果您还需要反序列化, XmlSerializer
最常用。使用XLINQ解析XML不会产生最佳的代码质量。
XmlSerializer
也很有用。例如,你可以非常好地使用它作为配置存储。
您还可以从XML架构生成类。如果有可用,这通常是最好的选择。