PostSharp で、何らかの方法で実行時にトレースをオン/オフできるかどうか、誰か教えてもらえますか? コードを書く必要が少なくなったので、最近は簡単に削除できました。トレース機能が一時的に必要です。
たぶん、ランタイムのオン/オフ機能を備えた PostSharp に代わるものはありますか?
更新 1:アイデアは思いついたが、それが良いかどうかわからない。これが例です
public class Smth
{
private long i = 0;
[TraceAttribute]
public void Execute()
{
Console.WriteLine("Execute call" + i++);
Thread.Sleep(200);
}
}
[Serializable]
public class TraceAttribute : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
if(Manager.IsEnabled)
{
Console.WriteLine();
Console.WriteLine(string.Format("Entering {0}", args.Method.Name));
}
}
public override void OnExit(MethodExecutionArgs args)
{
if(Manager.IsEnabled)
{
Console.WriteLine(string.Format("Leaving {0}", args.Method.Name));
Console.WriteLine();
}
}
}
public static class Manager
{
public static bool IsEnabled { get; set; }
static Manager()
{
IsEnabled = true;
}
}
IsEnabled プロパティを変更することで、トレースのオン/オフを切り替えることができました...他に提案はありますか?