У меня есть словарь, который содержит пары значений, которые я хочу сопоставить и обновить в экземпляре класса, который у меня есть.Использование Reflection для обновления существующего экземпляра
Так, например, у меня есть;
name -> test
userid -> 1
В моем классе я тогда у
MyClass.Name
MyClass.UserId
Я хотел бы установить MyClass.Name = test
и т.д.
В настоящее время у меня есть метод ниже;
public static GridFilters ParseGridFilters(Dictionary<string,string> data, MyClass myClass)
{
foreach (KeyValuePair<string, string> kvp in data)
{
Type t = typeof(MyClass);
t.GetProperty(kvp.Value, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
}
return myClass;
}
Как тогда проверить, если kvp.Key в (независимо от того случая, который я думаю, что я покрыта BindingFlags), а затем установите kvp.Value в MyClass. (Kvp.Key)
Что 'kvp.Key это в' значит? Когда он? Когда это выходит? –
[PropertyInfo.SetValue] (https://msdn.microsoft.com/en-us/library/hh194291 (v = vs.110) .aspx) –
TL; DR. Вы ищете «свойство набора C# с отражением» - http://stackoverflow.com/questions/619767/set-object-property-using-reflection –