私のコードはMemoryStreamを使用して、ネットワークとの間でオブジェクトをシリアル化/逆シリアル化します。私は、ワイヤで何かを送るために が必要なたびに新しいクラスを作成するのではなく、クラス内で1つの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;
}
感謝を!
ストリームを再利用する理由は何ですか?これは、メモリリークを導入してコードをデバッグするのは非常に簡単な方法です。 @Richardのコメントに+1 –
+1コードをプロファイリングして、これがパフォーマンスやメモリの問題であることが判明していない限り、これを行わないでください。 –
ありがとう、みんな。私は誰かが早すぎる最適化について言ったことを忘れてしまったと思います...... – Jacko