将匿名对象列表序列化为XML

时间:2019-06-03 15:53:05

标签: .net xml anonymous-class

我正在尝试查找.NET代码以将匿名对象列表转换为XML字符串,但到目前为止失败了。匿名对象不包含任何子列表,而只是一组值。如果将匿名类型传递给XmlSerializer类,则该类将引发异常。任何人都可以提供代码来做到这一点吗?

1 个答案:

答案 0 :(得分:0)

编写函数可以做到这一点非常简单:

public XElement ListToXML<T>(List<T> list)
{    
  var result = new XElement("Data");
  var props = typeof(T).GetProperties();
  foreach (var item in list)
  {
    var line = new XElement("Record");
    foreach (var prop in props)
    {
      var value = prop.GetValue(item);
      var element = new XElement(prop.Name, value);
      line.Add(element);
    }
    result.Add(line);
  }

  return result;
}