propertyInfo.SetValue()メソッドを使用してリフレクションでオブジェクトプロパティ値を設定しようとしていますが、「オブジェクトがターゲットタイプに一致しません」という例外が発生します。文字列置換値を持つオブジェクトに単純な文字列プロパティを設定しようとしているので、実際には意味がありません(少なくとも私にとって!)。C#Reflection - オブジェクトがターゲットタイプと一致しません
PropertyInfo fieldPropertyInfo = businessObject.GetType().GetProperties().FirstOrDefault(f => f.Name.ToLower() == piecesLeft[0].ToLower());
businessObject = fieldPropertyInfo.GetValue(businessObject, null);
fieldPropertyInfo.SetValue(businessObject, replacementValue, null);
私は「てBusinessObject」と「replacementValueは」によって、同じタイプの両方であることを確認しました。さらにたくさんのコードがありますので、これは再帰関数内に含まれているが、これはガッツある - ここでのコードスニペットですあなたがbusinessObject
の種類、そのプロパティのないタイプの別の値にてBusinessObject上プロパティの値を設定しようとしている
businessObject.GetType() == replacementValue.GetType()
ビンゴ:あなたは
businessObject
を上書きしているので、それはのようなものでなければなりません。ありがとう! –