下面是一个测试类的序列化的例子,可以看看序列化和反序列化的耗时

namespaceQueue...{
[Serializable]
publicclassPerson...{
privateint_age;
privatestring_name;

publicPerson()...{
_age=-1;
_name=string.Empty;
}

publicPerson(intage,stringname)...{
_age=age;
_name=name;
}

publicintAge...{
get...{
return_age;
}
set...{
_age=value;
}
}

publicstringName...{
get...{
return_name;
}
set...{
_name=value;
}
}
}
}

namespaceQueue...{
classProgram...{
staticvoidMain(string[]args)...{
Personperson=newPerson(23,"guangboo");
XmlSerializerFactoryfactory=newXmlSerializerFactory();
XmlSerializerserializer=factory.CreateSerializer(Type.GetType("Queue.Person"));
StringWriterwriter=newStringWriter();
TextReaderreader=null;
DateTimedt=DateTime.Now;//总的开始时间
inti=1;
while(i-->0)...{
reader=null;
writer=newStringWriter();
DateTimestartTime=DateTime.Now;
Console.WriteLine("序列化开始时间:"+startTime.Second.ToString()+":"+startTime.Millisecond.ToString());
serializer.Serialize(writer,person);
DateTimeendTime=DateTime.Now;
Console.WriteLine("序列化结束时间:"+endTime.Second.ToString()+":"+endTime.Millisecond.ToString());
Console.WriteLine("序列化耗时:"+(endTime.Ticks-startTime.Ticks));
Console.WriteLine(writer.GetStringBuilder().ToString());
Console.WriteLine("------------序列化成功-------------");
reader=newStringReader(writer.GetStringBuilder().ToString());
DateTimestartTime2=DateTime.Now;
Console.WriteLine("反序列化开始时间:"+startTime2.Second.ToString()+":"+startTime2.Millisecond.ToString());
Personp=(Person)serializer.Deserialize(reader);
DateTimeendTime2=DateTime.Now;
Console.WriteLine("反序列化结束时间:"+endTime2.Second.ToString()+":"+endTime2.Millisecond.ToString());
Console.WriteLine("反序列化耗时:"+(endTime2.Ticks-startTime2.Ticks));
Console.WriteLine("-------------反序列化成功------------");
reader.Close();
writer.Close();
}
DateTimedt2=DateTime.Now;
longticks=dt2.Ticks-dt.Ticks;
Console.WriteLine(string.Format("--------------共耗时{0}毫秒---{1}--------------",DateTime.FromBinary(ticks).Millisecond,ticks));
Console.Read();
}
}
}
本文通过一个简单的测试类Person进行序列化和反序列化的操作,并记录了整个过程的耗时情况,展示了序列化与反序列化的基本原理。
877

被折叠的 条评论
为什么被折叠?



