110,538
社区成员
发帖
与我相关
我的任务
分享
private void button21_Click(object sender, EventArgs e)
{
ArrayList aList = new ArrayList();
aList.Add("aaa");
aList.Add("bbb");
// XMLSerializer.Serialize(aList, "ArrList.xml"); //序列化ArrayList 没问题的
ArrayList[] listarr = new ArrayList[2];
listarr[0] = new ArrayList();
listarr[1] = new ArrayList();
listarr[0].Add("1");
listarr[0].Add(2);
listarr[1].Add("111");
listarr[1].Add(22.55);
XMLSerializer.Serialize(listarr, "ArrListss.xml");
}
[Serializable]
public class XMLSerializer
{
public static void Serialize(System.Collections.ArrayList[] al,string filePath)
{
try
{
XmlSerializer formatter = new XmlSerializer(typeof(System.Collections.ArrayList[])); //此类型直接出错
//XmlSerializer formatter = new XmlSerializer(typeof(System.Collections.ArrayList));
StreamWriter sw = new StreamWriter(filePath, false);
//formatter.Serialize(sw, al[1]); //可以的
sw.Flush();
sw.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
ArrayList listarr = new ArrayList();
ArrayList listsub1 = new ArrayList();
listsub1.Add("1");
listsub1.Add(2);
ArrayList listsub2 = new ArrayList();
listsub2.Add("111");
listsub2.Add(22.55);
listarr.Add(listsub1);
listarr.Add(listsub2);
XMLSerializer.Serialize(listarr, "ArrListss.xml");
[Serializable]
public class XMLSerializer
{
public static void Serialize(System.Collections.ArrayList al, string filePath)
{
try
{
Type typeInfo = al.GetType();
XmlSerializer formatter = new XmlSerializer(typeInfo); //此类型直接出错
//XmlSerializer formatter = new XmlSerializer(typeof(System.Collections.ArrayList));
StreamWriter sw = new StreamWriter(filePath, false);
formatter.Serialize(sw, al);
sw.Flush();
sw.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
结果:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfAnyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<anyType xsi:type="ArrayOfAnyType">
<anyType xsi:type="xsd:string">1</anyType>
<anyType xsi:type="xsd:int">2</anyType>
</anyType>
<anyType xsi:type="ArrayOfAnyType">
<anyType xsi:type="xsd:string">111</anyType>
<anyType xsi:type="xsd:double">22.55</anyType>
</anyType>
</ArrayOfAnyType>