我已经使用BinaryFormatter将对象序列化/反序列化为字节数组。但它太慢了。这是我的代码:
IFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
formatter.Serialize(stream, this);
stream.Close();
byte[] currentByteArray = stream.ToArray();
是否有可能改进该代码,以加快速度。或者我的替代方案是什么?我已经看过像xmlserialization这样的其他几个序列化器,但我不想把它写成文件,就像一个字节数组一样。
提前致谢!
答案 0 :(得分:2)
如果您在View -> Tool Windows
语句中处理,就像家伙在评论中所说的那样,可以改进您的代码:
finally
但是,上面的代码并没有提高IFormatter formatter;
MemoryStream stream;
try
{
formatter = new BinaryFormatter();
stream = new MemoryStream();
formatter.Serialize(stream, this);
byte[] currentByteArray = stream.ToArray();
}
finally
{
if(stream!=null)
stream.Close();
}
类的性能,因为它可以正常工作。但是你可以使用其他库。
.NET中最快且通用的序列化程序之一是Protobuf-net。例如:
BinaryFormatter