String.Format с фигурными скобками

Наша библиотека низкоуровневого журналирования должна справляться со всеми видами отправляемых в нее журнальных сообщений.

Некоторые из этих сообщений включают фигурные скобки (как часть текста), а некоторые содержат параметры, которые должны быть отформатированы как часть строки с помощью String.Format

Например, эта строка может быть входом для класса Logger :

"Parameter: {Hostname} Value: {0}" С правильной переменной, отправленной для использования в программе форматирования.

Чтобы сделать это правильно, я должен убрать фигурные скобки, которые не являются частью форматирования (путем их удвоения).

Я думал сделать это с помощью Regex, однако это не так просто, как может показаться, поскольку я понятия не имею, как сопоставить эти строки внутри фигурных скобок (те, которые НЕ используются String.Format для целей форматирования) .

Другая проблема заключается в том, что класс Logger должен быть максимально эффективным по производительности, начало обработки регулярных выражений в рамках его работы может снизить производительность.

Есть ли какая-нибудь надлежащая и известная передовая практика для этого?

6
задан lysergic-acid 15 November 2011 в 08:04
поделиться