我的代码使用MemoryStream序列化/反序列化对象到/来自网络。我想在我的课堂中重新使用一个MemoryStream,而不是每次需要 发送一些东西时创建一个新的。想要重新使用MemoryStream
有谁知道如何做到这一点?
代码片段:
// Serialize object to buffer
public byte[] Serialize(object value)
{
if (value == null)
return null;
MemoryStream _memoryStream = new MemoryStream();
_memoryStream.Seek(0, 0);
_bf.Serialize(_memoryStream, value);
return _memoryStream.GetBuffer();
}
// Deserialize buffer to object
public object Deserialize(byte[] someBytes)
{
if (someBytes == null)
return null;
MemoryStream _memoryStream = new MemoryStream();
_memoryStream.Write(someBytes, 0, someBytes.Length);
_memoryStream.Seek(0, 0);
var de = _bf.Deserialize(_memoryStream);
return de;
}
谢谢!
重复使用流的原因是什么?这听起来像是一种非常简单的方式来引入内存泄漏并且很难调试代码。 – 2011-01-07 19:56:11
对@Richard的评论+1。不要这样做,除非你已经对代码进行了剖析,并发现这是一个性能或内存问题。 – 2011-01-07 19:59:32
谢谢,伙计们。我想我忘了曾经有人提到过早优化的内容...... – Jacko 2011-01-07 20:25:29