我正在编写一个 C#.NET 程序,该程序使用 XmlSerializer 序列化和反序列化当前用户正在处理的项目与 XML 文件之间的关系。这工作正常,但我试图找出一种方法来防止两个用户从网络驱动器打开同一个文件并让一个用户覆盖前一个用户的保存。我本质上想要 MS Word 的行为,如果程序在打开文件时无法获得对文件的写访问权限,它会以只读模式打开文件。
那么如何锁定对文件的访问呢?我是否只是打开文件流对象并保留对它的引用?我是否继续对任何中间保存使用相同的文件流对象,而不是为每次保存打开和关闭它们?还是有其他方法可以锁定对文件的访问?
另外,即使我的应用程序崩溃,我如何确保文件被释放?这是实现 IDisposable 的好案例吗?