using (var file_stream = File.Create("users.xml"))
{
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(file_stream, this);
file_stream.Close();
}
Использование приведенного выше кода работает отлично. Однако, когда я сокращаю его до:
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(File.Create("users.xml"), this);
Я получаю следующее исключение, когда пытаюсь десериализовать файл users.xml в том же тесте: Процесс не может получить доступ к файлу «users.xml», поскольку он используется другим процессом.
Причина, по-видимому, в том, что метод File.Create возвращает открытый FileStream, который я не могу закрыть, поскольку не держу ссылку на него.
Мой плохой, или Майкрософт? ;-)