BinaryFormatter是C#中一种常用的序列化方法,但它有一些缺点,比如序列化后的数据冗长、性能较低等。以下是几种替代BinaryFormatter的序列化方法。
using Newtonsoft.Json;
// 对象序列化为Json字符串
string json = JsonConvert.SerializeObject(obj);
// Json字符串反序列化为对象
var obj = JsonConvert.DeserializeObject(json);
using Google.Protobuf;
// 对象序列化为字节数组
byte[] data;
using (var stream = new MemoryStream())
{
obj.WriteTo(stream);
data = stream.ToArray();
}
// 字节数组反序列化为对象
var obj = YourMessageType.Parser.ParseFrom(data);
using MessagePack;
// 对象序列化为字节数组
byte[] data = MessagePackSerializer.Serialize(obj);
// 字节数组反序列化为对象
var obj = MessagePackSerializer.Deserialize(data);
这些替代方法都有各自的优缺点,可以根据具体的需求选择适合的序列化方法。