指定された場所にファイルを作成するエラーロギングライブラリを作成して、そのファイルにエラー情報を保存します。このエラー情報は、別のタスクプログラムによって読み込み可能ですこのライブラリで。複数のオブジェクトのシリアライズと逆シリアル化
私が保存している方法は、ファイルにErrorEntryというクラスをシリアル化してファイルの最後に追加するバイナリ形式(BinaryFormatter()
とFileStream()
を使用)です。これは、一連のErrorEntriesが連続していることを意味します。すべての情報をファイルからリストに読み込み、エントリを追加してから、ファイルに保存してリソースをダンプする必要があるので、リストとしてはありません。単一の書き込みコマンドを実行するだけで、各オブジェクトをシリアル化された独自のオブジェクトとして格納すれば、はるかに効果的です。
私の問題は、リストまたは個々のオブジェクトをシリアライズするにはいくつかの例がありますが、複数のオブジェクトには何もありません。私は個々のオブジェクトとしてそれらを保存するが、私はそれらを読み込むときに、オブジェクトを読み取り、そのオブジェクトのリストとしてシリーズを返したい。
while(!EOF)
{
//deserialize each object
//add individual object to a list
}
//return the list of objects
1つのファイルから各オブジェクトをデシリアライズする方法を教えてください。上記のものが動作する内部マーカーがあり、ファイルの最後であるかどうかを検出するだけで済むか、それを読むために他の何かをする必要がありますか?
は、なぜあなたは単に '一覧
@OndrejTucny彼は以前のすべてのエントリをロードせずにファイルに追加したい。 – weston
彼はなぜ、それは妥当だと言った。オブジェクトレベルで直列化解除するには、各エントリの後にデリミタシーケンスを記述し、ファイルを読み込むときにそれに反応する必要があります。 – Tommi