我尝试使用以下命令序列化某些自定义类的List<T>
List<T> l = new List<T>();
...
XmlSerializer serializer = new XmlSerializer(l.GetType());
serializer.Serialize(writer, list);
它输出:
<ArrayOfT>
<T>
...
</T>
<T>
...
</T>
</ArrayOfT>
如何获得相同的内容,但没有ArrayOfT
元素,所以它看起来像:
<T>
...
</T>
<T>
...
</T>
我试图这样做,因为它发生在包装类中,所以我的实际输出格式为:
<PropertyName>
<ArrayOfT>
<T>
...
</T>
<T>
...
</T>
</ArrayOfT>
</PropertyName>
ArrayOfT
元素是多余的(逻辑上它与PropertyName
的名称相同。)
答案 0 :(得分:2)
你可以这样做:
XmlSerializer serializer = new XmlSerializer(l.GetType());
foreach (T item in list)
{
serializer.Serialize(writer, item);
}
这样就可以序列化项目而不是外部对象。