用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化
2006-11-28 09:41
239 查看
刚才把经过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);
}
整个过程只用了这么点代码,真是一气呵成的感觉。
学会了这一手技术,以后做对象的数据转移的时候又多了一种手段,哈哈!
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数组对象与反序列化
- java Redis Jedis存储Java对象 - (Java序列化为byte数组方式)
- JAVA基础 day23 IO流的其他类 (对象的序列化 管道流 RandomAccessFile类(随机读取文件) DateStream(操作基本数据类型的流) 操作数组的流 )字符编码问题
- 操作对象数组 或数组 绑定后台序列化后的列表对象 将列表序列化成对象
- C#中数组,ArrayList与List对象的区别
- C# 数组,ArrayList与List对象的区别
- ArrayList的数组声明为transient却依旧序列化的原因
- 自定义对象排序(数组/ArrayList)
- Android Intent传递复杂类型,例如:数组,ArrayList类型,传递类对象
- [转]C#中数组,ArrayList与List对象的区别
- C#反序列化JSON数组对象
- java Redis Jedis存储Java对象 - (Java序列化为byte数组方式)
- java ArrayList toArray 由ArrayList 到 对象 数组 的转换 同C#
- C#中数组,ArrayList与List对象的区别
- 数组和集合对象(三) ArrayList练习
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
- 对象数组与ArrayList互转的简单方法[摘录]
- C#中数组、ArrayList与List对象的区别
- 把一个ArrayList转换成对象数组
- JAVA序列化和反序列化 对象<=>IO流 对象<=>字节数组