Wie mache ich meine eigene Methode ähnlich wie String.Format mit Composite-Formatierung in C #

Ich mag, wie String.Format Argumente verwendet, um Variablen in die Zeichenfolge einzufügen, die es formatiert. Dies wird als Composite-Formatierung bezeichnet und von MSDN erläutertHier.

Ich möchte diese Funktionalität mit meiner Logging-Fassade:

string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)

Meine ILoggerFacade hat die folgende Methodensignatur:

void Debug<T>(T message, params Object[] args);

Und ich weiß, dass ich das ganz einfach umsetzen kann:

ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
    m_Log.Debug(String.Format(message, args));
}

In Visual Studio bekomme ich jedoch nicht die ausgefallene Hervorhebung der Argumente {0}, {1}, ...:

Ich denke, es ist ReSharper, der für sie verantwortlich ist, und es scheint, als würde es nur die Formatierungsargumente ignorieren und keine "Intellisense" -Hilfe geben. Dies ist nicht gut, da die anderen Entwickler, die die Fassade verwenden, dies erwarten werden.

Wie erhalte ich eine Argumenthervorhebung und "Intellisense" für benutzerdefinierte formatierte Methoden, ähnlich wie diese funktionieren:

Console.WriteLine(...)
String.Format(...)
etc...

Jede Hilfe wäre dankbar.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage