本文主要是介绍用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
刚才把经过xml串行化(序列化)的数组对象,输入进了数据库,然后再读取出来,反序列化为一个数组对象。成功了!!整个过程只用了这么点代码,真是一气呵成的感觉。
学会了这一手技术,以后做对象的数据转移的时候又多了一种手段,哈哈!
PS:我发现写blog的时候Z-BLOG的tag功能很不人性化,找了半天,哈欠,应该再改一下。
简单的代码如下:
ArrayList aList = new ArrayList();
aList.Add("aaa");
aList.Add("bbb");
XmlSerializer ser = new XmlSerializer(typeof(ArrayList));
System.IO.MemoryStream mem = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
ser.Serialize(writer, aList);
writer.Close();
string strtmp=Encoding.Default.GetString(mem.ToArray());
MessageBox.Show(strtmp);
//看!这里串行为什么了,串行为一个xml了!!
//(www.dc9.cn版权所有)
XmlSerializer mySerializer = new XmlSerializer(typeof(ArrayList));
StreamReader mem2 = new StreamReader(new MemoryStream(System.Text.Encoding.Default.GetBytes(strtmp)), System.Text.Encoding.Default);
ArrayList myObject = (ArrayList)mySerializer.Deserialize(mem2);
MessageBox.Show(myObject[0].ToString());
//这里反序列化为对象,测试成功了!!
//(www.dc9.cn版权所有)
把他们函数化:序列化的函数
private string myXmlSerializer(object o)
{
XmlSerializer ser = new XmlSerializer(o.GetType());
System.IO.MemoryStream mem = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
ser.Serialize(writer, o);
writer.Close();
return Encoding.Default.GetString(mem.ToArray());
}
private object myXmlDeserialize(string s, Type t)
{
XmlSerializer mySerializer = new XmlSerializer(t);
StreamReader mem2 = new StreamReader(new MemoryStream(System.Text.Encoding.Default.GetBytes(s)), System.Text.Encoding.Default);
return mySerializer.Deserialize(mem2);
}
这篇关于用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!