2009-08-07 13 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. 
} 

をしかし、私は私が書くとWriteLineメソッドメソッドを実装してみましょうのTraceListenerクラスがありました。まず私はこのようなクラスを作成すると思いました。大きな欠点は、これらのメソッドの両方が引数として文字列だけを許可し、文字列より多くの情報を送信できるようにしたいということです。私は何をすべきか?多分私の最初のイデアが一番ですか?

編集:私はPostSharpのような多くのトレースメカニズムがあることを知っています。私は学習目的でこれをやっています!

答えて

2

文字列を受け入れるWrite関数とWriteLine関数は、オーバーライドする必要がある関数の最小限のペアを表します。 TraceListenerには他の書き込み関数があり、オプションでその受け入れオブジェクトをオーバーライドできます。

しかし、TraceListenerはフレームワークトレース関数で使用するように設計されています。したがって、クラスを使用して、フレームワークを介して出力をトレースするのを「聞く」ことができない場合は、特定のトレースニーズに適したインターフェイスを使用する方がよい場合があります。

おそらくSystem.IO.TextWriterを継承した方が良いでしょう。それは多くの書き込みメソッドを持っていますが、私は彼らがWriteとWriteLineを通してすべての出力をルーティングすると信じています。したがって、あなたはそれらの2つの関数をオーバーライドすれば、

関連する問題