arrarylist: C#中如何序列化ArraryList和自定义类型



在C#中如何序列化ArrayList并且ArrayList中存放自定义类型数据?

请看如下代码:

----------------------------------------

先定义个自定义类型:

public struct LocalNetInfo
{
localnet_name;
localnet_code;
pub_connection;
local_connection;

public Name
{
get { localnet_name; }
{ localnet_name = value; }
}

public Code
{
get { localnet_code; }
{ localnet_code = value; }
}

public PubConnection
{
get { pub_connection; }
{ pub_connection = value; }
}

public LocalConnection
{
get { local_connection; }
{ local_connection = value; }
}

public override
{
Name;
}

}
下面是序列化和反序列化:

public SerializeArrayList(ArrayList al)
{
Type extra = Type[1];
extra[0] = typeof(LocalNetInfo);
XmlSerializer xs = XmlSerializer(typeof(ArrayList), extra);
MemoryStream ms = MemoryStream;
XmlTextWriter tw = XmlTextWriter(ms, Encoding.Default);
xs.Serialize(tw, al);
tw.Close;
Encoding.Default.GetString(ms.ToArray);
}

public ArrayList DeserializeArrayList( serQuestions, Type type, Type extratype)
{
XmlSerializer xs = XmlSerializer(type, extratype);
StreamReader sr = StreamReader( MemoryStream(.Text.Encoding.Default.GetBytes(serQuestions)), .Text.Encoding.Default);
(ArrayList)xs.Deserialize(sr);
}
测试代码:

ArrayList al = ArrayList;
LocalNetInfo info = LocalNetInfo;
info.Code = "11";
info.Name = "name1";
info.PubConnection = "ewere";
al.Add(info);

LocalNetInfo info2 = LocalNetInfo;
info2.Code = "112";
info2.Name = "name12";
info2.PubConnection = "ewere2";
al.Add(info2);
//序列化..............
s2 = SerializeArrayList(al);
Type extra2 = Type[1];
extra2[0] = typeof(LocalNetInfo);
//反序列化...........
ArrayList la = DeserializeArrayList(s2, typeof(ArrayList), extra2);
需要介绍说明在反序列化时这里用到了Type,这是关键!
Tags:  java对象序列化 java序列化 序列化 arrarylist

延伸阅读

最新评论

发表评论