【发布时间】:2015-06-03 08:34:53
【问题描述】:
我怎样才能像这样反序列化 xml:
<query>
<parameters>
<param name="lastUpdate">2012-05-25</param>
<param name="code">11222122</param>
<param name="type">idnLookup</param>
</parameters>
<response>
<category name="person" version="1">
<field name="surname">Soap</field>
<field name="name1">Joe</field>
<field name="date_of_birth">1973-05-09</field>
</category>
<category name="contact" version="1">
<row>
<field name="phone">0118063433</field>
<field name="type">home</field>
<field name="date">2003-01-01</field>
</row>
<row>
<field name="phone">0124666566</field>
<field name="type">home</field>
<field name="date">2008-03-11</field>
</row>
</category>
</response>
</query>
变成这样的类结构:
public class Query{
public string lastUpdate {get;set;}
public string code {get;set;}
public string type {get;set;}
public Response response {get;set;}
}
class Response{
public Person person {get;set;}
public Contact[] contacts {get;set;}
}
class Person {
public string surname {get;set;}
public string name1 {get;set;}
public string date_of_birth {get;set;}
}
class Contact {
public string phone {get;set;}
public string type {get;set;}
public string date {get;set;}
}
使用标准的 .net xml 序列化程序。还是我需要自己动手?
【问题讨论】:
-
输入对于标准 Xml 序列化程序来说太具体了,无法做到这一点。我认为您可以在标准标准反序列化之前运行 XSL 转换,但编写自定义 c# 代码可能更容易...您还可以查看 IXmlSerializable 接口
-
@SimonMourier 我总是建议在
IXmlSerializable之前使用 DTO 模型(域模型和序列化形式之间的模型,与序列化层匹配) - API 是可怕的 正确。我确实喜欢 XSLT 的想法。 -
附带说明:想出那个 xml 布局的人...不知道如何 xml ;p
-
XML 对我来说看起来不错。 XML 没有错。需要额外的对象进行序列化。该人希望在序列化完成后进行一些额外的解析。没有错。好主意。
标签: c# .net xml xml-serialization