using (var file_stream = File.Create("users.xml"))
{
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(file_stream, this);
file_stream.Close();
}
使用上面的代码完美地工作。然而,当我把它缩短:Xml序列化无需处理
var serializer = new XmlSerializer(typeof(PasswordManager));
serializer.Serialize(File.Create("users.xml"), this);
我出现以下情况例外,当我尝试反序列化在同一个测试Users.xml文件: 该进程无法访问文件“users.xml中”,因为它是被另一个进程使用。
原因似乎是File.Create方法返回一个打开的FileStream,我无法关闭,因为我没有保留它的引用。
我的不好,还是微软的? ;-)
这里有一个潜在的概念,你错过了(这很容易做到) - 阅读使用iDisposable接口的对象。 – overslacked 2009-05-17 20:28:32