ArrayList  aList = new ArrayList();
aList.Add("aaa");
aList.Add("bbb");
XmlSerializer ser = new XmlSerializer(typeof(ArrayList));
System.IO.MemoryStream mem = new MemoryStream();
System.Xml.XmlTextWriter aa = new System.Xml.XmlTextWriter (mem, System.Text.Encoding.Default);
ser.Serialize(aa,aList);
long ppp =  mem.Length;
Console.WriteLine (ppp);
Console.ReadLine();
aa.Close();当我序列化ArrayList时,以上程序正常运行-----------------------------[SerializableAttribute] 
class temp
{
string aaa="aaa";
public string abc
{
get 
{
return aaa;
}set 
{
aaa = value;
}
}
temp aList = new temp();
aList.Add("aaa");
aList.Add("bbb");
XmlSerializer ser = new XmlSerializer(typeof(ArrayList));
System.IO.MemoryStream mem = new MemoryStream();
System.Xml.XmlTextWriter aa = new System.Xml.XmlTextWriter (mem, System.Text.Encoding.Default);
ser.Serialize(aa,aList);long ppp =  mem.Length;//到这时程序出错。说是XML格式错误。
Console.WriteLine (ppp);
Console.ReadLine();
aa.Close();

解决方案 »

  1.   

    XmlSerializer ser = new XmlSerializer(typeof(ArrayList));
    这句话出错
    因为自定义类型序列化的时候需要说明
    System.Type aType(1)
    aType(1) = typeof(temp)
    XmlSerializer ser = new XmlSerializer(typeof(ArrayList),aType);
      

  2.   

    temp aList = new temp();
    aList.Add("aaa");
    aList.Add("bbb");
    XmlSerializer ser = new XmlSerializer(typeof(ArrayList));??
    写错了吧?aList应该是temp类型,为何是ARRAYLIST?