5

指定された場所にファイルを作成し、そのファイルにエラー情報を保存するエラー ログ ライブラリを作成しています。エラー情報は、このライブラリと組み合わせて作成する予定の別のタスカー プログラムで読み取ることができます。

私がそれを保存する方法は、バイナリ形式 (BinaryFormatter()とを使用FileStream()) です。ここでは、ErrorEntry というクラスをファイルにシリアル化し、ファイルの末尾に追加します。これが意味することは、一連の ErrorEntries が連続していることです。ファイルからすべての情報をリストに読み込み、エントリを追加し、それをファイルに保存してリソースをダンプするのは現実的ではないように見えるため、リストとして持っていません。単一の書き込みコマンドを実行するだけでよく、それぞれをシリアル化された独自のオブジェクトとして保存する方がはるかに効果的です。

私の問題は、リストまたは個々のオブジェクトのシリアル化に関するいくつかの例を見つけることができますが、複数のオブジェクトではなく個別のオブジェクトでは何も見つからないことです。それらを個別のオブジェクトとして保存したいのですが、ロードするときにオブジェクトを読み取り、そのオブジェクトのリストとしてシリーズを返したいと思います。に似たものがあると想像します

while(!EOF)
{
     //deserialize each object
     //add individual object to a list
}
//return the list of objects

単一のファイルから各オブジェクトを逆シリアル化するにはどうすればよいですか? 上記が機能する内部マーカーがあり、それがファイルの終わりであるかどうかを検出する必要があるだけですか、それともそれらを読み取るために何か他のことをする必要がありますか?

4

1 に答える 1