using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Collections.Generic;
using System.Text;
public static class ThSerializer
{
/// <summary>
/// 序列化 对象.
/// </summary>
/// <param name="filename"></param>
/// <param name="t"></param>
public static void Serialize(string filename,object t)
{
Stream stream = File.Open(filename,FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, t);
stream.Close();
}
/// <summary>
/// 序列化,List
/// </summary>
/// <param name="filename"></param>
/// <param name="list"></param>
public static void Serialize(string filename, List<object> list)
{
Stream stream = File.Open(filename, FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, list);
stream.Close();
}
/// <summary>
/// 从文件中,反序列
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="filename"></param>
/// <returns></returns>
public static T Deserialize<T>(string filename)
{
Stream stream = File.Open(filename, FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
T t = (T)formatter.Deserialize(stream);
stream.Close();
return t;
}
/// <summary>
/// 反序列字符
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content"></param>
/// <returns></returns>
public static T DeserializeString<T>(string content)
{
byte[] bytes = Encoding.UTF8.GetBytes(content);
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
stream.Write(bytes,0,bytes.Length);
T t = (T)formatter.Deserialize(stream);
stream.Close();
return t;
}
}
c# 序列与反序列
最新推荐文章于 2023-10-08 16:02:34 发布