我的代碼使用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