【问题标题】:How to NOT have a wrapper element for list elements after XML serialization [duplicate]XML序列化后如何没有列表元素的包装元素[重复]
【发布时间】:2019-12-21 15:12:17
【问题描述】:

我有一堂课Payment。类结构如下所示:

public class Payment
{
  public decimal Amount{get;set;}
  public List<Loan> Loans{get;set;}
}
public class Loan
{
  public decimal Debt{get;set;}
  public string Lender{get;set;}
}

当我将它序列化为 XML 时,默认情况下它会产生如下内容:

<Payment>
  <Amount>...</Amount>
  <Loans>
    <Loan>...</Loan>
    <Loan>...</Loan>
  </Loans>
</Payment>

但我想要这样的输出:

<Payment>
  <Amount>...</Amount>
  <Loan>...</Loan>
  <Loan>...</Loan>
</Payment>

我怎样才能达到我想要的输出?

我的 XML 序列化代码是这样的:

System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Payment));

StringBuilder sb = new StringBuilder();
using (System.IO.TextWriter writer = new System.IO.StringWriter(sb))
{                    
  serializer.Serialize(writer, mainDocument);
  writer.Flush();
}
finalXML = sb.ToString();
// finalXML contains the XML string

【问题讨论】:

    标签: c# .net xml serialization xml-serialization


    【解决方案1】:

    只需将您的贷款定义为XmlElement

    public class Payment
    {
        public decimal Amount { get; set; }
        [XmlElement("Loan")] 
        public List<Loan> Loans { get; set; }
    }
    public class Loan
    {
        public decimal Debt { get; set; }
        public string Lender { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多