我已經編寫了一個擴展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