我喜欢String.Format如何使用参数将变量注入到它正在格式化的字符串中.这称为复合格式,MSDN 在此讨论.
我希望这个功能与我的日志门面:
string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
Run Code Online (Sandbox Code Playgroud)
我的ILoggerFacade具有以下方法签名:
void Debug<T>(T message, params Object[] args);
Run Code Online (Sandbox Code Playgroud)
而且,我知道我可以非常简单地实现这一点:
ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
m_Log.Debug(String.Format(message, args));
}
Run Code Online (Sandbox Code Playgroud)
但是,在Visual Studio中,我没有得到{0},{1},...参数的精彩突出显示:

我想ReSharper对他们来说是可以接受的,而且似乎只是忽略了格式化参数而没有提供"intellisense"帮助.这是不好的,因为将使用外观的其他开发人员将期待这一点.
如何为自定义格式化方法获取参数突出显示和"intellisense",类似于以下方法:
Console.WriteLine(...)
String.Format(...)
etc...
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.