簡體   English   中英

如何序列化對象數組

[英]How to serialize Array of object

如此處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();

這工作正常,但現在我有了Listof MySerializableClass

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM