Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# I';我试图测试我的记录器和我';我正在尝试在集成测试之后删除日志文件_C# - Fatal编程技术网

C# I';我试图测试我的记录器和我';我正在尝试在集成测试之后删除日志文件

C# I';我试图测试我的记录器和我';我正在尝试在集成测试之后删除日志文件,c#,C#,我正在尝试测试我的记录器,并尝试在集成测试之后删除日志文件。但这是一个错误的说法 我必须做什么才能释放要删除的文件 文件正在使用中 您可以这样尝试: public static void Logger_test() { //arrange string fileName = "InventoryPassword1234.log"; TextWriterTraceListener myListener = new TextWriterTraceListener(fileName,

我正在尝试测试我的记录器,并尝试在集成测试之后删除日志文件。但这是一个错误的说法

我必须做什么才能释放要删除的文件

文件正在使用中


您可以这样尝试:

public static void Logger_test() {
 //arrange     
 string fileName = "InventoryPassword1234.log";
 TextWriterTraceListener myListener = new TextWriterTraceListener(fileName, "myListener");
 Trace.Listeners.Add(myListener);
 //act
 Logger.Info("Hello World", "UnitTestProject1");
 //assert
 Trace.Flush();
 Trace.Listeners.Remove("myListener");
 myListener.Dispose();
 Assert.IsTrue(File.Exists(fileName));
 //cleanup
 File.Delete(fileName);
}

我创建了TextWriterTraceListener的对象,然后对其进行了处理。

删除前是否尝试过GC.Collect?@Rod如果这对您有效,则将其标记为接受的答案。我是否需要使用
Trace.Flush()
并删除侦听器,或者是否可以删除这些侦听器?是的,删除并关闭文件编写器/跟踪侦听器。使用TextWriterTraceListener类的Close方法释放TextWriterTraceListener对象的托管资源。Close方法将关闭写入程序,使其不再接收跟踪或调试输出,Dispose将处理此TextWriterTraceListener对象。Flush方法刷新输出缓冲区,并将缓冲数据写入侦听器。因此,您需要按以下方式使用:myListener.Flush();Trace.Listeners.Remove(myListener);myListener.Close();
public static void Logger_test() {
 //arrange     
 string fileName = "InventoryPassword1234.log";
 TextWriterTraceListener myListener = new TextWriterTraceListener(fileName, "myListener");
 Trace.Listeners.Add(myListener);
 //act
 Logger.Info("Hello World", "UnitTestProject1");
 //assert
 Trace.Flush();
 Trace.Listeners.Remove("myListener");
 myListener.Dispose();
 Assert.IsTrue(File.Exists(fileName));
 //cleanup
 File.Delete(fileName);
}