【发布时间】:2013-10-06 17:30:40
【问题描述】:
我正在尝试使用 propertyInfo.SetValue() 方法通过反射设置对象属性值,但出现异常“对象与目标类型不匹配”。这真的没有意义(至少对我来说!),因为我只是想在一个带有字符串替换值的对象上设置一个简单的字符串属性。这是一个代码 sn-p - 它包含在一个递归函数中,所以还有很多代码,但这是胆量:
PropertyInfo fieldPropertyInfo = businessObject.GetType().GetProperties().FirstOrDefault(f => f.Name.ToLower() == piecesLeft[0].ToLower());
businessObject = fieldPropertyInfo.GetValue(businessObject, null);
fieldPropertyInfo.SetValue(businessObject, replacementValue, null);
通过比较,我已经验证 businessObject" andreplacementValue` 是同一类型,返回 true:
businessObject.GetType() == replacementValue.GetType()
【问题讨论】:
标签: c# reflection