Как мне сделать свой собственный метод, похожий на String.Format, используя составное форматирование в C #

Мне нравится, как 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}, ...:

Argument highlighting for Composite Formatting methods

Я предполагаю, что это ReSharper, который ответственен за них, и кажется, что он просто игнорирует аргументы форматирования и не дает "intellisense" Помогите. Это нехорошо, поскольку другие разработчики, которые будут использовать фасад, будут ожидать этого.

Как получить подсветку аргумента и & quot; intellisense & quot; для пользовательских форматированных методов, подобных тому, как они работают:

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

Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос