03.02.2013

Форматированная строка на основе свойств объекта

Понадобилось сделать форматированную строку, которая бы заполнялась на основе свойств объекта. Т.е. на входе подается строка вида "{Name}-{Number}: {Annotation}", поля в фигурных скобках должны заполниться на основе свойств заданного объекта. Получилось следующее:
public class SomeClass
{
   #region Свойства

   // Здесь задаем свойства класса

   #endregion

   public string ToFormatedString(string format)
   {
      string result = format;

      foreach (var prop in GetType().GetProperties())
         result = result.Replace(string.Format("{{{0}}}", prop.Name), 
                     prop.GetValue(this, null) != null
                        ? prop.GetValue(this, null).ToString()
                        : string.Empty);
      return result;
   }
}
Для пущего удобства данный код можно оформить в виде Extension или базового класса, от которого дальше проводить наследование.

Комментариев нет:

Отправить комментарий