我已经编写了一个扩展TextWriterTraceListener的自定义跟踪侦听器。如何调用c#中的自定义跟踪侦听器的配置#
现在,我如何在侦听器上调用Dispose()?我通过我的项目的app.config添加它。
尝试添加调用在终结器中Dispose(false),但它没有被调用。奇怪的是,它在VS 2010中被调用,但不是在运行应用程序时,但我知道GC集合不能保证。 (基本上这是用于nunit测试来记录来自测试的System.Net.Socket调用,并且在所有测试运行之后我需要做一些后处理,并将它写入日志中。我将这部分添加到了Dispose( ))
的App.config片段:
<sources>
<source name="System.Net.Sockets" tracemode="protocolonly" maxdatasize="10240">
<listeners>
<add name="CustomTraceListener" type="Tests.Custom.MyTest.CustomTraceListener, Tests.Custom.MyTest" initializeData="custom.log" />
</listeners>
</source>
</sources>
一些代码片段:
~CustomTraceListener()
{
Dispose(false);
}
protected override void Dispose (bool disposing)
{
base.Write(customProcessor.PostProcess());
base.Flush();
base.Dispose(disposing);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
我并不想这样做的终结。那是我的问题,我怎么称呼Dispose()?或者我该如何做一些“后期处理”?这不像我有一个主要方法添加跟踪监听器,然后我可以调用Dispose()或Close()。我怎么做一个“使用”我在App.config中提到的东西。 – manojlds 2011-04-06 18:39:55