序列化实例
/// <summary>
/// 序列化系统消息,从一个SnmonMessage类型到string类型
/// </summary>
/// <param name="systemMeg">即将要反序列化的系统消息,从这个string类型中得到一个SnmonMessage</param>
public static string ToSerialize(Message systemMeg)
{
//创建一个xml序列化对象
System.Xml.Serialization.XmlSerializer xsl = new System.Xml.Serialization.XmlSerializer(typeof(Message));
//创建一个内存流对象
MemoryStream memoryStream = new MemoryStream();
//将传入的systemMeg转换成一个内存流,保存在xsl序列化对象中
xsl.Serialize(memoryStream, systemMeg);
//将这个转化好的序列化转换为string类型输出
return Convert.ToBase64String(memoryStream.ToArray());
}
/// <summary>
/// 反序列化系统消息,从一个string类型到SnmonMessage类型
/// </summary>
/// <param name="systemMeg">即将要序列化的系统消息</param>
public static SnmonMessage DeSerialize(string systemMeg)
{
//创建一个xml序列化对象
System.Xml.Serialization.XmlSerializer xsl = new System.Xml.Serialization.XmlSerializer(typeof(Message));
//序列化一个内存流
MemoryStream ms = new MemoryStream(Convert.FromBase64String(systemMeg));
//将从序列化中得到的对象返回
return (Message)xsl.Deserialize(ms);
}
}
/// <summary>
/// 图像和比特流之间的相互转换
/// </summary>
public class ImageByteSwitch
{
/// <summary>
/// 将图像转化换为比特数组
/// </summary>
/// <param name="imageIn">输入的图像(目前仅限于Jpeg格式的转换)</param>
/// <returns>一个byte数组</returns>
public static byte[] ImageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
/// <summary>
/// 将一个比特数组转换为一个图像
/// </summary>
/// <param name="byteArrayIn">要转换为图像的比特数组</param>
/// <returns>由比特数组转换出来的图像</returns>
public static Image ByteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
}
}