明確にするために、「アスペクト」の意味は、アプリケーションの機能の水平要素であり、アスペクト指向プログラミングのようにすべてのメソッド呼び出しをインターセプトするわけではありません。
.NET Trace インフラストラクチャ、特にTraceSource
オブジェクトの美しさを発見しました。この初心者のように、メソッドの開始と終了、エラーなどをトレースするために、各クラスに独自の TraceSource を与えました。
しかし、今はTraceSource
側面ごとに 1 つの方が良いと思います。たとえば、駐車場内の車両移動の記録をインポートして、駐車料金を計算し、請求システム (WHMCS) にメッセージを投稿するアプリがあります。
TraceSource
次のように、一連の静的プロパティを持つクラスが必要だと考えています。
public static class Traces
{
static Traces()
{
VehicleMovements = new TraceSource("VehicleMovements", SourceLevels.All);
Pricing = new TraceSource("Pricing", SourceLevels.All);
Calculation = new TraceSource("Calculation", SourceLevels.All);
Billing = new TraceSource("Billing", SourceLevels.All);
}
public static TraceSource VehicleMovements { get; set; }
public static TraceSource Pricing { get; set; }
public static TraceSource Calculation { get; set; }
public static TraceSource Billing { get; set; }
}
このようにして、たとえば、Traces.Pricing.VehicleMovements ("Terminal Id not configured");
そのシナリオを見つけた任意のクラスで、より適切にグループ化され、よりまとまりのあるログまたはその他の出力を得ることができます。
これは良い考えですか?おまけとして、トレース戦略とパターンに関するリソースへのいくつかのポインターは素晴らしいでしょう、ありがとう.