我喜欢 String.Format 如何使用参数将变量注入到它正在格式化的字符串中。这称为复合格式化,并由 MSDN here讨论。
我希望我的日志外观具有此功能:
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 对他们负责,而且它似乎只是忽略了格式化参数并且没有提供“智能感知”帮助。这并不好,因为将使用外观的其他开发人员会期待这一点。
如何为自定义格式化方法获得参数突出显示和“智能感知”,类似于这些方法的工作方式:
Console.WriteLine(...)
String.Format(...)
etc...
任何帮助,将不胜感激。