我正试图做这样的事情:
object value = sourceProperty.Invoke(this, new object[] { });
targetProperty.Invoke(target, new object[] { value });
其中 source / targetProperty 值为 MethodInfo 对象。在执行此代码时,已经保证属性属于同一类型,并且此对象和目标对象都具有这些属性在他们身上。
大部分时间都可以使用,但是当属性类型为 int 时,我遇到异常:
“TargetException:Object与目标类型不匹配。”
知道会发生什么事吗?
编辑:已解决,请参阅评论。
答案 0 :(得分:0)
当我试图找到该属性时,我发现我正在使用此对象中的 PropertyInfo [] 而不是目标与源属性的名称匹配。
目标对象确实具有它应该具有的属性,并且属性类型匹配,并且从source属性返回的对象的类型与target属性匹配(错误地是此对象的setter而不是目标对象的setter),所以没有任何指向这个。
在格式化代码块以编辑我的问题时,我注意到了这个问题。