我需要将一个对象的所有公共属性复制到另一个类型的另一个对象。Jon Skeet 创建的库MiscUtil包含 PropertyCopy 类,它非常适合我需要的东西,除了一件事。我在源对象中有一个属性需要转换为目标对象中的另一种类型(Guid => 字符串)。
来自 PropertyCopy 的部分代码:
if (!targetProperty.PropertyType.IsAssignableFrom(sourceProperty.PropertyType))
{
//My specific case
if (sourceProperty.PropertyType == typeof(Guid) && targetProperty.PropertyType == typeof(string))
{
//Expression.Bind(targetProperty, [--Convert Guid to string expression??--]);
}
else
{
throw new ArgumentException("...");
}
}
那么是否可以创建一个表达式来将源属性的转换绑定到目标?