我正在写一个简单的映射器类来克隆和复制不同对象之间的不同/相同类型的属性。对象映射到位图
映射是通过反射执行的,对于值类型,列表和引用类型来说工作得很好。
一切工作的类型像这样的:
class SimpleValueTypes
{
public string Name { get; set; }
public int Number { get; set; }
public long LongNumber { get; set; }
public float FloatNumber { get; set; }
public bool BooleanValue { get; set; }
public AnotherType AnotherProperty{ get; set; }
}
其中AnotherType是一个类类型。引用类型的映射,直到所有的属性被映射到目的地几乎这种方式通过检查属性递归地执行:
object value = mapFrom.GetValue(input, null);
mapTo.SetValue(output, value, null);
其中mapForm和mapTo是的PropertyInfo对象。
问题开始时,带有“位图”属性的新类型到达,我意识到整个类的对象不能用同样的方式处理。
Class NewType
{
public Bitmap Bitmap{get;set;}
public string Name{get;set;}
}
对于像这样的情况,你会推荐做什么?显然,复制属性不会导致原始Bitmap对象的新副本。
PS
我不能使用automapper /发射映射器或任何其他外部包。
为什么你不能使用Automapper? – Tigran
这是这个项目的政策 – mhttk