Mi código utiliza MemoryStream para serializar/deserializar objetos a/desde la red. Me gustaría volver a utilizar un solo MemoryStream en mi clase, en lugar de crear uno nuevo cada vez que necesito para enviar algo por cable.desea volver a utilizar MemoryStream
¿Alguien sabe cómo hacer esto?
Fragmento de código:
// 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;
}
Gracias!
¿Cuál es el motivo para reutilizar las transmisiones? Suena como una forma bastante fácil de introducir memoryleaks y código difícil de depurar. –
+1 en el comentario de @Richard. No haga esto a menos que haya perfilado el código y haya encontrado que se trata de un problema de rendimiento o memoria. –
Gracias, chicos.Supongo que olvidé lo que alguien dijo una vez sobre la optimización prematura ...... – Jacko