/// <summary>
/// 序列化一个对象
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
/// <param name="t">对象</param>
/// <returns></returns>
public static string Serialize<T>(T t)
{
//将ClientInfo对象序列化成XML
XmlSerializer serializer = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
serializer.Serialize(stream, t);
byte[] buffer = stream.GetBuffer();
return Encoding.UTF8.GetString(buffer);
}
/// <summary>
/// 把XML反序列化为一个对象
/// </summary>
/// <typeparam name="T">返回的的数据类型</typeparam>
/// <param name="xml">xml串</param>
/// <returns></returns>
public static T Deserialize<T>(string xml)
{
//将XML反序列化为ClientInfo对象
byte[] buffer = Encoding.UTF8.GetBytes(xml);
MemoryStream stream = new MemoryStream(buffer);
XmlSerializer serializer = new XmlSerializer(typeof(T));
T Info = (T)serializer.Deserialize(stream);
stream.Close();
return Info;
}
在这里用到了泛型参数,它意义在于传入不确定的数据类或者对象