1

我有一个 XML 文件,我需要反序列化它。无需绕过所有节点,只需将 XML 文件反序列化为对象。

是否可以从结果 ActionGetSiteResultData 中隐藏,或者只有一种方式使用自定义序列化/反序列化?

课程:

// root
public Result Result { get; set; }
// rows
public class Result 
{
  public List<ResultData> Data { get; set; }
}
//item
public class ResultData
{
  [XmlElement(ElementName = "gen_info")]
  public GenInfo GenInfo { get; set; }

  [XmlElement(ElementName = "hosting")]
   public Hosting Hosting { get; set; }
}

结果:

  <Result>
    <Id>1</Id>
    <Data>
          <ResultData> <--- REMOVE THIS
             <gen_info>
                <ascii-name>sadsad</ascii-name>
              </gen_info>
              <hosting/>
          </ResultData> <--- REMOVE THIS
    </Data>
  </Result>

需要:

<Result>
    <Id>1</Id>
    <Data>
        <gen_info>
            <ascii-name>sadsad</ascii-name>
         </gen_info>
         <hosting/>
    </Data>
  </Result>
<Result>
 <Id>2</Id>
 <Data>
   <gen_info>
      <ascii-name>sadsad2</ascii-name>
    </gen_info>
    <hosting/>
  </Data>
 </Result>
4

1 回答 1

0

这应该可以,但是很冗长。如果不起作用,请先在 ResultData 属性上尝试 [XmlElement(ElementName = "gen_info")]:

public class Result 
{
  [XmlIgnore]
  public List<ResultData> Data { get; set; }

  [XmlElement(ElementName = "gen_info")]
  public ResultData[] __XmlSerializedData{
    get{ return Data.ToArray();}
    set{ Data = new List<ResultData>(value);}
  }
}
于 2013-02-12T23:01:28.330 回答