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

Serializing an list of anonymous objects to XML

我正在尝试查找 .NET 代码以将匿名对象列表转换为 XML 字符串,但到目前为止都失败了。匿名对象不包含任何子列表,它只是一组值。如果向 XmlSerializer class 传递匿名类型,它会抛出异常。谁能提供代码来做到这一点?

编写一个函数 do do 相当简单:

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;
}