如何序列化对象数组

本文关键字:数组 对象 序列化 | 更新日期: 2023-09-27 18:33:36

如 http://msdn.microsoft.com/en-us/library/szzyf24s%28v=vs.110%29.aspx 所示,我们可以生成对象的xml:

MySerializableClass myObject = new MySerializableClass();
// Insert code to set properties and fields of the object.
XmlSerializer mySerializer = new 
XmlSerializer(typeof(MySerializableClass));
// To write to a file, create a StreamWriter object.
StreamWriter myWriter = new StreamWriter("myFileName.xml");
mySerializer.Serialize(myWriter, myObject);
myWriter.Close();

这工作正常,但现在我有我的可序列化类列表

List<Object> lObj = new List<Object>();
Person obj1 = new Person ();
Person obj2 = new Person ();
lobj.add(obj1);
lobj.add(obj2);
CreateXMLOFList(lobj);

你能建议我写一个可以生成集合列表的单个XML的函数吗:

例:

<Person>
<Name>
Joy
</Name>
</Person>
<Person>
<Name>
 Steive
</Name>
</Person>

这里Person是一个类,Name是一个属性。

如何序列化对象数组

默认情况下,.NET XmlSerializer将在序列化List<T>时生成ArrayOfItem元素。

您可以通过创建一个从 List<T> 派生的自己的类来规避这一点:

[Serializable]
public class Persons : List<Person>
{
}

或者,当它是属性时,使用名称标记XmlElement

[XmlElement("Persons")]
public List<Person> Persons
{
    get;
    set;
}