我编写了一个类,用于将属性从一个对象复制到另一个对象,但我发现异常:System.Reflection.TargetException:对象与目标类型不匹配。我检查过,fromPropValue的类型正确,不为空,等等。当然,receiver 的属性是 Binary。
public class Reflector
{
public void ReflectProperties(object from, object to)
{
Type toType = to.GetType();
Type fromType = from.GetType();
var toProperties = toType.GetProperties();
foreach (var prop in toProperties)
{
var fromProp = fromType.GetProperty(prop.Name);
if (fromProp != null)
{
var propType = prop.PropertyType;
var fromPropValue = fromProp.GetValue(from, null);
if (propType == typeof(Binary))
prop.SetValue(this, (Binary)fromPropValue, null); // <-- error
else if (propType == typeof(string))
prop.SetValue(this, (string)fromPropValue, null);
else if (propType == typeof(bool))
prop.SetValue(this, (bool)fromPropValue, null);
}
}
}
}
PS:对象from是对象to的父对象,我只想将所有属性的值从父对象复制到子对象。