如何使用数组序列化复杂对象

时间:2013-10-14 07:54:50

标签: c# xml xml-serialization xml-deserialization

我有一个看起来像这样的xml:

<SOAPRequestItemHeadReturn xmlns:ns2="fsw" xsi:type="ns2:SOAPItemRevisionHeadResult">
  <comment xsi:type="xsd:string" xsi:nil="true"/>
  <searchComplete xsi:type="xsd:boolean">true</searchComplete>
  <resultList xsi:type="ns2:SOAPItemRevisionHead">
    <stringKey xsi:type="xsd:string">ItemRevision.ItemID</stringKey>
    <stringValue xsi:type="xsd:string">cam_english_template</stringValue>
  </resultList>
  <resultList xsi:type="ns2:SOAPItemRevisionHead">
    <stringKey xsi:type="xsd:string">ItemRevision.ItemID</stringKey>
    <stringValue xsi:type="xsd:string">cam_english_template</stringValue>
  </resultList>
  <search xsi:type="ns2:SearchType">
    <value xsi:type="xsd:string">ItemRevision.ItemID</stringKey>
    <used xsi:type="xsd:boolean">true</searchComplete>
  </search>
...

基本上,SOAPRequestItemHeadReturn的结构如下:

ItemHeadReturn
|-comment
|-searchComplete
|-resultList
|-resultList
|-resultList
|-search
|-search
|-search

问题是:如何构建班级SOAPRequestItemHeadReturn?这是一个可能的结构:

public class SOAPItemRevisionHeadResult{
  public string comment { get; set;}
  public bool searchComplete { get; set;}
  public SearchType[] search { get; set;}
  public StringMap[] resultList {get; set;}
}

我需要填写属性,但我不知道属性和位置。任何想法?

1 个答案:

答案 0 :(得分:1)

您可以使用XSD.exe实用程序生成与您的XML对应的C#类:http://msdn.microsoft.com/en-us/library/x6c1kb0s%28v=vs.110%29.aspx

打开Visual Studio命令提示符,导航到要存储生成的类的目录,然后键入:

xsd "MyFileFullPath.xml" 

这将从您生成XML的XSD文件。然后:

xsd "MyGeneratedXSDFileFullPath.xsd" /c

生成C#类。

相关问题