関数名をフェッチし、エラー レポート パーツのプリセット位置に挿入できる Visual Studio マクロなどを作成したいと考えていました。例を見れば一目瞭然
Class SampleClass
{
public void FunctionA()
{
try
{
//Do some work here
}
catch (Exception ex)
{
Logger.WriteLine(LogLevelEnum.Error, "SampleClass", "FunctionA Failed");
Logger.WriteLine(LogLevelEnum.Error, "FunctionA", ex.ToString());
}
finally
{
}
}
}
そのため、共通ライブラリーの重要な機能のほとんどについて、同様のパターンに従いました。正しい名前を入力することを忘れたり、コピーして貼り付けた後に名前を変更するのを忘れたりする必要がないように、ビルド前のログ セクションに "FunctionA" を挿入できるようにしたいと考えています。ツールバーから手動で呼び出すか、ショートカット キーを使用して呼び出すことができます。
では、どこから始めればよいでしょうか。
注: 私は .Net の中級者と見なされ、C# と VB で 3 年以上書いていますが、マクロについてはまだ未経験です。コード自体と例外について心配する必要はありません。これは単なる例です。
編集: Ovidiu Pacurar と cfeduke に感謝します。私がここで望んでいたのは、変更して忘れる 1 回限りの方法でした。PostSharp は、例外がスローされない場合でも、これらの関数のすべてでオーバーヘッドが発生します。スタックトレースから掘り下げることは可能ですが、ある時点で、スタックトレースの取得にあまり処理を費やさずに「FunctionA Failed」をログに記録したいと考えています。さらに、ライブラリが難読化されている場合、スタックトレースはわかりにくくなります。
実は、この機能には別の必要性がありましたが、それについては前に言及するのを忘れていました。ライブラリを納品する準備ができたら、テーブルを参照して関数名をすべて関数コードに変更したいと考えています。"FunctionA" は "0001" であり、"難読化された" ログの問題を解決します。