需要引用的命名空间
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
通过序列化方法将对象转化成字符串类型
public string SerializeObject(object obj)
{
IFormatter formatter = new BianryFormatter();
string result = string.Empty;
using(StreamMemory stream = new StreamMemory())
{
formatter.Serialize(stream,obj);
byte[] byt = new byte[stream.Lengh];
byt = stream.ToArray();
result = Convert.ToBase64String(byt);
//result = Encoding.UTF8.GetString(byt,0,byt.Length);
stream.Flush();
}
return result;
}
序列化对象数据类型转换过程
对象变化过程
object ——》 stream ——》 byte[] ——》 sting
Formatter.Serialize(object) byte=stream.ToArry() Convert.ToBase64String()
通过反序列化方法将字符串转换成对象
//反序列化
public object DeserializeString(string str)
{
IFormatter formatter = new BinaryFormater();
byte[] byt = Convert.FromBase64String(str);
object obj = null;
using(MemmoryStream stream = new MemmoryStream(byt,0,byt.Length))
{
formatter.Deserialize(stream);
}
}
//反序列化对象变化过程
string ——》 byte[] ——》 stream ——》 object
Convert.FromBase64String(str) Stream stream = new MemorryStream(byt,0,byt.Length); obj = formatter.Deserialize(stream);