c# - XML序列化后如何没有列表元素的包装元素
问题描述
我有一堂课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
解决方案
只需将您的贷款定义为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; }
}
推荐阅读
- angular - 目标入口点“@angular/fire/database”缺少依赖项: - @angular/core
- c# - 为国家下拉列表序列化对象
- r - 将包含总计和百分比的行添加到 DT 数据表
- c# - 使用 C# 登录远程计算机
- angular - 如何使用 angular、ng-zorro-antd 等配置 Tailwind css?
- bash - 带有单个点 (cd .) 的 chdir 的用途
- sql - SQL Server:检测列更改
- python - 在 Python 中将数字计数为字符串
- react-native - 是否可以更改 React Native 日历选定日期的样式?
- html - 无论我尝试什么,我的 CSS 文件都会出错