下面是一个测试类的序列化的例子,可以看看序列化和反序列化的耗时
namespace
Queue
...
{
[Serializable]
public class Person ...{
private int _age;
private string _name;
public Person() ...{
_age = -1;
_name = string.Empty;
}
public Person(int age, string name) ...{
_age = age;
_name = name;
}
public int Age ...{
get ...{
return _age;
}
set ...{
_age = value;
}
}
public string Name ...{
get ...{
return _name;
}
set ...{
_name = value;
}
}
}
}
[Serializable]
public class Person ...{
private int _age;
private string _name;
public Person() ...{
_age = -1;
_name = string.Empty;
}
public Person(int age, string name) ...{
_age = age;
_name = name;
}
public int Age ...{
get ...{
return _age;
}
set ...{
_age = value;
}
}
public string Name ...{
get ...{
return _name;
}
set ...{
_name = value;
}
}
}
}
namespace
Queue
...
{
class Program ...{
static void Main(string[] args) ...{
Person person = new Person(23, "guangboo");
XmlSerializerFactory factory = new XmlSerializerFactory();
XmlSerializer serializer = factory.CreateSerializer(Type.GetType("Queue.Person"));
StringWriter writer = new StringWriter();
TextReader reader = null;
DateTime dt = DateTime.Now; //总的开始时间
int i = 1;
while (i-- > 0) ...{
reader = null;
writer = new StringWriter();
DateTime startTime = DateTime.Now;
Console.WriteLine("序列化开始时间:" + startTime.Second.ToString() + ":" + startTime.Millisecond.ToString());
serializer.Serialize(writer, person);
DateTime endTime = DateTime.Now;
Console.WriteLine("序列化结束时间:" + endTime.Second.ToString() + ":" + endTime.Millisecond.ToString());
Console.WriteLine("序列化耗时:" + (endTime.Ticks - startTime.Ticks));
Console.WriteLine(writer.GetStringBuilder().ToString());
Console.WriteLine("------------序列化成功-------------");
reader = new StringReader(writer.GetStringBuilder().ToString());
DateTime startTime2 = DateTime.Now;
Console.WriteLine("反序列化开始时间:" + startTime2.Second.ToString() + ":" + startTime2.Millisecond.ToString());
Person p = (Person)serializer.Deserialize(reader);
DateTime endTime2 = DateTime.Now;
Console.WriteLine("反序列化结束时间:" + endTime2.Second.ToString() + ":" + endTime2.Millisecond.ToString());
Console.WriteLine("反序列化耗时:" + (endTime2.Ticks - startTime2.Ticks));
Console.WriteLine("-------------反序列化成功------------");
reader.Close();
writer.Close();
}
DateTime dt2 = DateTime.Now;
long ticks = dt2.Ticks - dt.Ticks;
Console.WriteLine(string.Format("--------------共耗时{0}毫秒---{1}--------------",DateTime.FromBinary(ticks).Millisecond,ticks));
Console.Read();
}
}
}
class Program ...{
static void Main(string[] args) ...{
Person person = new Person(23, "guangboo");
XmlSerializerFactory factory = new XmlSerializerFactory();
XmlSerializer serializer = factory.CreateSerializer(Type.GetType("Queue.Person"));
StringWriter writer = new StringWriter();
TextReader reader = null;
DateTime dt = DateTime.Now; //总的开始时间
int i = 1;
while (i-- > 0) ...{
reader = null;
writer = new StringWriter();
DateTime startTime = DateTime.Now;
Console.WriteLine("序列化开始时间:" + startTime.Second.ToString() + ":" + startTime.Millisecond.ToString());
serializer.Serialize(writer, person);
DateTime endTime = DateTime.Now;
Console.WriteLine("序列化结束时间:" + endTime.Second.ToString() + ":" + endTime.Millisecond.ToString());
Console.WriteLine("序列化耗时:" + (endTime.Ticks - startTime.Ticks));
Console.WriteLine(writer.GetStringBuilder().ToString());
Console.WriteLine("------------序列化成功-------------");
reader = new StringReader(writer.GetStringBuilder().ToString());
DateTime startTime2 = DateTime.Now;
Console.WriteLine("反序列化开始时间:" + startTime2.Second.ToString() + ":" + startTime2.Millisecond.ToString());
Person p = (Person)serializer.Deserialize(reader);
DateTime endTime2 = DateTime.Now;
Console.WriteLine("反序列化结束时间:" + endTime2.Second.ToString() + ":" + endTime2.Millisecond.ToString());
Console.WriteLine("反序列化耗时:" + (endTime2.Ticks - startTime2.Ticks));
Console.WriteLine("-------------反序列化成功------------");
reader.Close();
writer.Close();
}
DateTime dt2 = DateTime.Now;
long ticks = dt2.Ticks - dt.Ticks;
Console.WriteLine(string.Format("--------------共耗时{0}毫秒---{1}--------------",DateTime.FromBinary(ticks).Millisecond,ticks));
Console.Read();
}
}
}