XmlSerializer を使用して、現在のユーザーが作業しているプロジェクトを XML ファイルとの間でシリアル化および逆シリアル化する C#.NET プログラムを作成しています。これは正常に動作していますが、2 人のユーザーがネットワーク ドライブから同じファイルを開き、1 人のユーザーが前のユーザーの保存を上書きするのを防ぐ方法を見つけようとしています。私は基本的に、MS Word の動作が必要です。プログラムがファイルを開くときにファイルへの書き込みアクセスを取得できない場合、ファイルは読み取り専用モードで開かれます。
では、ファイルへのアクセスをロックするにはどうすればよいでしょうか。ファイル ストリーム オブジェクトを開いたままにして、それへの参照を保持するだけですか? 保存ごとにファイル ストリーム オブジェクトを開いたり閉じたりするのではなく、中間保存に同じファイル ストリーム オブジェクトを使用し続けますか? または、ファイルへのアクセスをロックする他の方法はありますか?
また、アプリがクラッシュした場合でもファイルが確実にリリースされるようにするにはどうすればよいですか? これは IDisposable を実装する良いケースでしょうか?