2009-08-21 6 views
1

コンソールへのすべての関数呼び出しを記録し、盗難の場合の違いを探すことによって、クラスのデバッグを開始することがかなり頻繁に発生します。 このようなトレースを有効にするためにクラスに適用できる属性はありますか?これは、すべてのメソッドにこれらコンソールにすべての関数呼び出しを記録する

Console.WriteLine("classname: methodname") 

を入力し、その後それらを削除する必要がかなり疲れるん(削除は条件付きコンパイルすることによって行うことができますが、あなたがすべてのこの冗長性を持っている場合、コードを見て非常に良いではありません)

答えて

5

属性を使用して、誰かが私に言及したアドオンツールがありました。私がそれを見つけることができるか見てみましょう。

私はそれがPostSharpだったと思う:

Article

http://www.postsharp.org/

0

に設定されていますソフトウェアエンジニアリングの時代には、プロファイリングツールを使用して、それを達成するためにインジェクションをプロファイリングしていました私はこれがデバッグには非常に暗いアプローチであると言わなければならないが、私はそれを使用したとき、それは最前線ではなく絶望的な動きだったと言わざるを得ない。 printステートメントによるデバッグはかなり遅く、効果がありません。

+0

によってもサポートされています。効果は問題によって異なります。 – Etan

3

PostSharpを使用すると、すべてのメソッド呼び出しを代行受信し、すべての引数を指定してもそれらを出力することができ、ソースコードを変更する必要はありません。このCodeProject articleは、PostSharpでロギングを行う方法を示しています。

ちょうど、PostSharpはaspect-oriented programming (AOP)フレームワークであり、いくつかの点があります。

関連する問題