編集: 似ていますが、これは NLog ラッパーの使用に関する質問と同じではありません。拡張メソッドは別のレベルの間接化を追加し、適切なラッパーでさえ間違った呼び出しサイトを報告します
私は現在、NLog のロギング ラッパーを使用しており、正確なコールサイト情報を取得するために、ソースの例に示されているトリックを使用しています。私が開始した新しいプロジェクトでは、より単純なクラスを作成したかったので、次のようなインターフェイスを実装しました。
public interface ILogger
{
void Log( LogEntry entry );
}
そして、次のような拡張メソッド クラスを作成しました。
public static class LoggerExtensions
{
public static void Debug( this ILogger logger, string format, params object[] args)
{
logger.Log( new LogEntry( LogLevel.Debug, format, args ) );
}
...
}
問題は、NLog が呼び出しサイトを拡張メソッドの呼び出し元ではなく拡張メソッドとして表示することです。少し調べてみましたが、NLog と拡張メソッドについては何も見つかりませんでした。
この場合、callsite 情報を修正することは可能ですか? または、インターフェイス自体にデバッグ、情報などの機能を含める唯一の方法はありますか?