0

ファイルとの間で複数のオブジェクトをシリアライズ/デシリアライズしたい。構文は次のようになります。

obj.Append(byteArray);
obj.Append(byteArray);
obj.Append(byteArray);
IEnumerable<byte[]> obj.Extract();

これは非常に簡単に実現できますが (たとえば、ファイルストリームと protobuf-net を内部で使用するクラスを作成するなど)、これを行うためのより洗練された方法があるかどうか疑問に思っています。シリアライザーを使用してファイルストリームに書き込むクラス (サードパーティのライブラリから) はありますか?

編集:ネットワーク経由で送信されるビデオ データをキャプチャするファイル ストリームとしてこれが必要です。そのため、ファイルストリームは専用の時間だけ開いている必要があります。私の以前の解決策は、すべてのビデオ フレームを新しいファイルに保存することでしたが、スケーラブルではありません (特に hdd、およびビデオ パートナーの増加)。

4

1 に答える 1

0

どうですか:

using(var stream = File.Open(filename, FileMode.Create))
{
      var formatter = new BinaryFormatter();
      formatter.Serialize(stream, firstObjectToSerialize);
      formatter.Serialize(stream, secondObjectToSerialize);
}
于 2012-07-13T17:04:27.260 に答える