Mój kod wykorzystuje MemoryStream do serializowania/deserializowania obiektów do/z sieci. Chciałbym ponownie użyć pojedynczego MemoryStream w mojej klasie, zamiast tworzyć nowy za każdym razem, gdy potrzebuję , aby wysłać coś przez przewód.Chcę ponownie użyć MemoryStream
Czy ktoś wie, jak to zrobić?
Fragment kodu:
// 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;
}
Dzięki!
Jaki jest powód ponownego wykorzystywania strumieni? To brzmi jak całkiem prosty sposób na wprowadzenie pamięci i trudny do debugowania kod. –
+1 z komentarza @Richard. Nie rób tego, chyba że sprofilowałeś kod i okazało się, że jest to problem z wydajnością lub pamięcią. –
Dzięki, chłopaki.Przypuszczam, że zapomniałem, co ktoś powiedział o przedwczesnej optymalizacji ...... – Jacko