Вам повезло! SmartFormat делает именно так, как вы описываете. Это легкая утилита форматирования строк с открытым исходным кодом.
Он поддерживает именованные заполнители :
var template = " {Name:{Last}, {First}} ";
var data = new { Name = new { First="Dwight", Last="Schrute" } };
var result = Smart.Format(template, data);
// Outputs: " Schrute, Dwight " SURPRISE!
Также поддерживается форматирование списка :
var template = " {People:{}|, |, and} ";
var data = new { People = new[]{ "Dwight", "Michael", "Jim", "Pam" } };
var result = Smart.Format(template, data);
// Outputs: " Dwight, Michael, Jim, and Pam "
Вы можете проверить модульные тесты для Именованных заполнителей и Список форматеров , чтобы увидеть еще много примеров!
Он даже имеет несколько форм обработки ошибок (игнорирование ошибок, ошибок вывода, ошибок выброса).
Примечание: именованная метка-заполнитель использует поиск по отражению и / или словарю, поэтому вы можете десериализовать JSON в объекты C # или вложенные Dictionaries
, и это будет отлично работать!