C #получить и установить свойство по имени переменной

Есть какой-либо способ сделать это? Я пытаюсь проверить, существует ли свойство объекта, и если да, я хочу установить для него значение. (Может быть, вся идея плоха, если она верна -почему?)

class Info
{
    public string X1{ set; get; }
    public string X2{ set; get; }
    public string X3{ set; get; }
}

Dictionary<string, string> values = new Dictionary<string, string>();
values.Add("X1","blah1");
values.Add("X2","blah2");
values.Add("NotThere","blah3");

Info info = new Info();

foreach (var item in values)
{
  string propertyName = item.Key;
  string value = item.Value;
  if (info.GetType().GetProperty(propertyName) != null)  //this probably works
  {
        info.propertyName = value; //this doesn't, how to set it?
  }
}
12
задан Jan Matousek 6 August 2012 в 07:49
поделиться