Наша библиотека низкоуровневого журналирования должна справляться со всеми видами отправляемых в нее журнальных сообщений.
Некоторые из этих сообщений включают фигурные скобки (как часть текста), а некоторые содержат параметры, которые должны быть отформатированы как часть строки с помощью String.Format
Например, эта строка может быть входом для класса Logger :
"Parameter: {Hostname} Value: {0}" С правильной переменной, отправленной для использования в программе форматирования.
Чтобы сделать это правильно, я должен убрать фигурные скобки, которые не являются частью форматирования (путем их удвоения).
Я думал сделать это с помощью Regex, однако это не так просто, как может показаться, поскольку я понятия не имею, как сопоставить эти строки внутри фигурных скобок (те, которые НЕ используются String.Format для целей форматирования) .
Другая проблема заключается в том, что класс Logger должен быть максимально эффективным по производительности, начало обработки регулярных выражений в рамках его работы может снизить производительность.
Есть ли какая-нибудь надлежащая и известная передовая практика для этого?