Mã của tôi sử dụng MemoryStream để sắp xếp/deserialize đối tượng đến/từ mạng. Tôi muốn sử dụng lại một MemoryStream duy nhất trong lớp của mình, thay vì tạo một MemoryStream mới mỗi lần tôi cần để gửi một thứ gì đó qua dây.muốn sử dụng lại MemoryStream
Có ai biết cách thực hiện việc này không?
Đoạn mã:
// 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;
}
Cảm ơn!
Lý do để sử dụng lại luồng là gì? Nó âm thanh như một cách khá dễ dàng để giới thiệu memoryleaks và khó gỡ lỗi mã. –
+1 trên nhận xét của @Richard. Đừng làm điều này trừ khi bạn đã lược tả mã và thấy đây là vấn đề về hiệu suất hoặc bộ nhớ. –
Cảm ơn các bạn.Tôi đoán tôi quên những gì một người đã từng nói về tối ưu hóa sớm ...... – Jacko