Итак, я пытаюсь передать значения свойств из внутреннего класса в общедоступную структуру. Оба имеют одинаковые имена свойств с одинаковым регистром. Я не получаю ошибок, но свойства в структуре не устанавливаются.
foreach (UserProfile.UserProfileRecord r in rslt.record)
{
UserProfileRecord upr = new UserProfileRecord();
Type uprType = upr.GetType();
foreach (PropertyInfo p in r.GetType().GetProperties())
{
Debug.WriteLine(p.Name + " : " + p.GetValue(r));
PropertyInfo pi = uprType.GetProperty(p.Name);
pi.SetValue(upr, p.GetValue(r));
Debug.WriteLine(pi.Name + " - " + pi.GetValue(upr));
}
}
Вывод отладки выглядит следующим образом:
city : YERMO
city -
state : CA
state -
zip : 92398
zip -
telephone : 714-256-8463
telephone -
Я сравнил свой код с несколькими другими примерами в Microsoft и SO и не вижу ничего, что я делаю неправильно.
Я передаю структуру обратно вызывающей стороне, и она используется в качестве источника данных для DataGridView. Имена столбцов отображаются, но ячейки пусты. При остановке в перерыве и просмотре структуры я вижу, что все значения свойств равны нулю.
Что я делаю неправильно?
upr
и выбрасываете. Разве вы не должны поместить их в список или что-то в этом роде? - person John Wu   schedule 09.01.2019