Я пишу программу C # .NET, которая использует XmlSerializer для сериализации и десериализации проекта, над которым работает текущий пользователь, в XML-файл и обратно. Это работает нормально, но я пытаюсь найти способ запретить двум пользователям открывать один и тот же файл с сетевого диска и заставлять одного пользователя перезаписывать сохранение предыдущего пользователя. По сути, мне нужно поведение, которое имеет MS Word, когда, если программа не может получить доступ на запись к файлу при его открытии, она открывает файл в режиме только для чтения.
Итак, как мне заблокировать доступ к файлу? Могу ли я просто оставить объект файлового потока открытым и сохранить на него ссылку? Могу ли я продолжать использовать один и тот же объект файлового потока для любых промежуточных сохранений, а не открывать и закрывать их для каждого сохранения? Или есть другой способ заблокировать доступ к файлу?
Также как я могу гарантировать, что файл будет выпущен, даже если мое приложение выйдет из строя? Будет ли это хорошим случаем для реализации IDisposable?