C# XML序列化程序文件已在使用中错误?
当我尝试在codebehind文件中使用以下代码时,它会成功运行,但当我刷新ASP.NET webform时,它会给出一个文件已在使用的错误,错误在代码下面给出C# XML序列化程序文件已在使用中错误?,c#,serialization,C#,Serialization,当我尝试在codebehind文件中使用以下代码时,它会成功运行,但当我刷新ASP.NET webform时,它会给出一个文件已在使用的错误,错误在代码下面给出 string filename = "D:\\project\\data\\latest\\today.xml"; XmlSerializer serializer = new XmlSerializer(typeof(searchResult)); serializer.UnknownNode += new
string filename = "D:\\project\\data\\latest\\today.xml";
XmlSerializer serializer = new XmlSerializer(typeof(searchResult));
serializer.UnknownNode += new XmlNodeEventHandler(serializer_UnknownNode);
serializer.UnknownAttribute += new XmlAttributeEventHandler(serializer_UnknownAttribute);
FileStream fs = new FileStream(filename, FileMode.Open);
searchResult po;
po = (searchResult)serializer.Deserialize(fs);
这里是错误
进程无法访问文件“D:\project\data\latest\today.xml”,因为另一进程正在使用该文件
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源
异常详细信息:System.IO.IOException:进程无法访问文件“D:\project\data\latest\today.xml”,因为其他进程正在使用该文件
误差源
第141行:FileStream fs=newfilestream(文件名,FileMode.Open)
每次使用流打开文件时,都有可能锁定该文件,以便其他流无法访问该文件。应尽快关闭流 我更喜欢在每次处理IDisposable对象时使用using关键字 我的意思是:
using(var fs=OpenFile(filename))
{
//do my work
fs.close();
}
以这种方式,即使我忘记关闭我的流,它最终也会被处理,并且无论如何都会被关闭。如果你彻底地看到问题,可能会重复你在中所做的事情。这两个问题是不同的,在一个案例中,我也在写文件,然后试图阅读,但在这个案例中,我只是在两次阅读这个文件,在.NET中,这些东西很重要。