C # -Eigenschaft nach Variablenname abrufen und festlegen

Gibt es eine Möglichkeit, dies zu tun? Ich versuche zu testen, ob eine Eigenschaft eines Objekts vorhanden ist, und wenn dies der Fall ist, möchte ich einen Wert dafür festlegen. (Vielleicht ist die vollständige Idee schlecht, wenn sie wahr ist - warum?)

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?
  }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage