String.Format が引数を使用して、書式設定する文字列に変数を挿入する方法が気に入っています。これはコンポジット フォーマットと呼ばれ、MSDN のこちらで説明されています。
ロギング ファサードでこの機能が必要です。
string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
私の ILoggerFacade には、次のメソッド シグネチャがあります。
void Debug<T>(T message, params Object[] args);
そして、私はこれを非常に簡単に実装できることを知っています:
ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
m_Log.Debug(String.Format(message, args));
}
ただし、Visual Studio では、{0}、{1}、... 引数の派手な強調表示が得られません。
それらの責任を負うのはReSharperだと思いますが、フォーマットの引数を無視して「インテリセンス」の助けを与えていないようです。ファサードを使用する他の開発者がこれを期待しているため、これは良くありません。
これらの動作と同様に、カスタム形式のメソッドの引数の強調表示と "intellisense" を取得するにはどうすればよいですか。
Console.WriteLine(...)
String.Format(...)
etc...
どんな助けでも大歓迎です。