我正在遍历具有多个属性的类,并且正在搜索具有相同ID的任何文本框。如果有匹配,那么我想将属性值更新为文本框值,但我收到此错误:
对象与目标类型不匹配
这是代码:
foreach (var prop in contactInfo.GetType().GetProperties())
{
var ctrl = WizardCampaign.FindControl(prop.Name) ?? Page.Master.FindControl(prop.Name);
if (ctrl != null)
{
if (ctrl.GetType() == typeof(TextBox))
{
var r = (TextBox)ctrl;
prop.SetValue(prop, r.Text, null);
}
}
}
答案 0 :(得分:5)
看这里:
prop.SetValue(prop, r.Text, null);
SetValue
应该将您想要更改的对象作为第一个参数,但是您传递的是PropertyInfo
对象。我相信你的实际代码应该是:
prop.SetValue(contactInfo, r.Text, null);