我正在寫一個簡單的映射器類來克隆和複製不同對象之間的不同/相同類型的屬性。對象映射到位圖
映射是通過反射執行的,對於值類型,列表和引用類型來說工作得很好。
一切工作的類型像這樣的:
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