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,我无法关闭它,因为我没有保留它的引用。
我的坏,还是微软的?;-)