我的类 EDIDocument 中有一个简单的方法用于加载 xml:
/// <summary>
/// Method used to load specific target file as template
/// </summary>
/// <param name="filepath">file path</param>
/// <returns>loading status</returns>
public bool Load(string filepath)
{
//file exists
bool returnValue = File.Exists(filepath);
//file is a xml
returnValue &= Path.GetExtension(filepath).Equals(".xml");
//if file is valid
if (returnValue)
{
XmlReader reader = XmlReader.Create(filepath);
//load document
this._xmldoc = XDocument.Load(reader);
//load complete
returnValue &= (this._xmldoc != null);
}
//End of method
return returnValue;
}
我对此方法进行了单元测试:
/// <summary>
/// Test success on load xml document
/// </summary>
[TestMethod]
public void TestLoadXML_Success()
{
File.Create("xml.xml");
//create document
EDIDocument doc = new EDIDocument();
//load something wrong
bool result = doc.Load("xml.xml");
//test
Assert.IsTrue(result);
}
当我开始我的单元测试时,我总是有一个例外:
测试方法 EDIDocumentTest.TestLoadXML_Success 抛出异常:System.IO.IOException: The process cannot access the file 'C:......\Debug\xml.xml' because it is being used by another process。
我已经用谷歌搜索了这个问题,并且我尝试了 XmlReader、StreamReader 的多种解决方案……但我总是遇到同样的例外……
我的问题是:如何在我的方法 Load for 中修复此异常?
谢谢