Я пытаюсь использовать метод propertyInfo.SetValue()
для установки значения свойства объекта с отражением, и я получаю исключение "Объект не соответствует типу цели". Это не имеет смысла (по крайней мере, для меня!), Поскольку я просто пытаюсь установить простое строковое свойство для объекта со значением замены строки. Вот фрагмент кода - он содержится в рекурсивной функции, поэтому здесь есть еще куча кода, но это мужество:
PropertyInfo fieldPropertyInfo = businessObject.GetType().GetProperties().FirstOrDefault(f => f.Name.ToLower() == piecesLeft[0].ToLower());
businessObject = fieldPropertyInfo.GetValue(businessObject, null);
fieldPropertyInfo.SetValue(businessObject, replacementValue, null);
Я проверил, что businessObject" and
replaceValue" имеют одинаковый тип, выполнив это сравнение, которое вернуло true:
businessObject.GetType() == replacementValue.GetType()