当我尝试使用我的 VS2008 单元测试项目调用 TraceSource.TraceData 时,我收到了一个 Object Disposed 异常。我在下面包含了一个非常小的代码示例,它始终如一地重现了这个问题。我只是在运行第一个单元测试后才看到这一点 - 但我有一种预感,一旦我的网站启动并与大量用户一起运行,它就会影响我。
就像在第一次单元测试后关闭底层流一样。非常感谢“溢出”大师的任何帮助。
脚步:
1)创建一个VS 2008单元测试项目
2)使用此代码添加一个类:
namespace TracingError
{
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest1
{
public static TraceSource ts = new TraceSource("TraceTest");
[TestMethod]
public void A()
{
ts.TraceEvent(TraceEventType.Information, 1, "Hello from A");
}
[TestMethod]
public void B()
{
ts.TraceEvent(TraceEventType.Information, 1, "Hello from B");
}
}
}
3) 使用以下代码添加 app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<sources>
<source name="TraceTest" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
<remove name="Default" />
</listeners>
</source>
</sources>
<switches>
<add name="SourceSwitch" value="Verbose" />
</switches>
<trace autoflush="true" indentsize="4"></trace>
</system.diagnostics>
</configuration>