0
我使用遗留系统(而不是我的设计),它将一些数据作为序列化XML(SOAP)保存在数据库中。使用XDocument解析SOAP XML
XML是使用SoapFormatter创建的。
SoapFormatter formatter = new SoapFormatter();
formatter.Serialize(stream, o);
由于版本控制问题,我不能简单地反序列化SOAP。从中创建数据的模型已经发生变化,持久数据的反序列化(在xml中)是不可能的。所以我想弄清楚如何手动将旧SOAP“反序列化”到现有模型。
我可以加载到XDocument,然后用LINQ提取节点值。但是我对Guid值有问题。它们存储在SOAP XML中,如下所示:
<someId xsi:type="a2:Guid" xmlns:a2="http://schemas.microsoft.com/clr/ns/System">
<_a>1396006029</_a>
<_b>2720</_b>
<_c>20328</_c>
<_d>162</_d>
<_e>217</_e>
<_f>181</_f>
<_g>57</_g>
<_h>113</_h>
<_i>92</_i>
<_j>64</_j>
<_k>35</_k>
</someId>
有没有办法做到这一点无痛人意?
我可以通过一个类似这样的阅读一个:
var someId = xdoc.Descendants(ns + "root").Elements("someId").Elements("_a").Value;
,并尝试解析到的Guid,但它并不好看。
感谢,
迈克下面