2009-08-07 55 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路由所有的输出,所以如果你只是重写这两个函数,你可以免费获得很多。