2009-08-07 96 views
0

我正在實施一個跟蹤機制。現在我想知道的是實現這種機制的最佳方式是什麼(我的意思是架構)。首先,我想創建這樣一個類:如何在.net中執行跟蹤

class Tracer { 
    public void NewEventRegistered(etc) {...} //this is the method I use to send this class the events I want to register 

    event newEventRegistered(..) //this is the event the user is going to use to catch all the events in the application that have been sent to NewEventRegistered method. 
} 

但後來我看到有一個TraceListener類,它可以讓我實現Write和WriteLine方法。最大的缺點是這兩種方法只允許字符串作爲參數,我希望能夠發送比字符串更多的信息。我該怎麼辦?也許我的第一個ideia是最好的?

編輯:我知道有很多像PostSharp這樣的跟蹤機制,所以我只是爲了學習的目的而這樣做!

回答

2

接受字符串的Write和WriteLine函數僅表示您必須覆蓋的最小函數對。在TraceListener中還有其他的寫函數可以選擇性地覆蓋接受對象。

但是,TraceListener設計用於框架跟蹤功能。所以,如果你不打算使用這個類來「監聽」跟蹤通過框架的輸出,你可能會更適合你的特定跟蹤需求的界面。

也許繼承自System.IO.TextWriter會更適合您的情況。它有很多寫入方法,但我相信它們通過Write和WriteLine路由所有的輸出,所以如果你只是重寫這兩個函數,你可以免費獲得很多。