Реализация собственного пользовательского форматера может быть хорошей идеей.
Вот как ты это делаешь. Сначала создайте тип, который определяет материал, который вы хотите добавить в ваше сообщение. Примечание. Я проиллюстрирую это только пользовательской частью шаблона ...
class JobDetails
{
public string User
{
get;
set;
}
}
Далее, внедрите простой пользовательский форматер ...
class ExampleFormatter : IFormatProvider, ICustomFormatter
{
public object GetFormat(Type formatType)
{
return this;
}
public string Format(string format, object arg, IFormatProvider formatProvider)
{
// make this more robust
JobDetails job = (JobDetails)arg;
switch (format)
{
case "User":
{
return job.User;
}
default:
{
// this should be replaced with logic to cover the other formats you need
return String.Empty;
}
}
}
}
Наконец, используйте это так ...
string template = "Dear {0:User}. Your job finished...";
JobDetails job = new JobDetails()
{
User = "Martin Peck"
};
string message = string.Format(new ExampleFormatter(), template, job);
..., который сгенерирует текст "Дорогой Мартин Пек. Ваша работа закончена ...".