Как мне сделать свой собственный метод, похожий на 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}, ...:
Я предполагаю, что это ReSharper, который ответственен за них, и кажется, что он просто игнорирует аргументы форматирования и не дает "intellisense" Помогите. Это нехорошо, поскольку другие разработчики, которые будут использовать фасад, будут ожидать этого.
Как получить подсветку аргумента и & quot; intellisense & quot; для пользовательских форматированных методов, подобных тому, как они работают:
Console.WriteLine(...)
String.Format(...)
etc...
Любая помощь будет оценена.