我的問題可能很愚蠢,但我很确定我會錯過這個問題的一個非常重要的部分.我必須做一些對象到對象映射(在C#項目中使用的域類和發送到閃存用戶端的類之間).
我的第一選擇是Automapper.但我有一些問題(嵌套屬性,而不是無定義的構造函數定義).事實證明,用automapper映射一個非常複雜的類型并不容易.
然後我的問題是:為什麼不實作像這樣的方法:
ClassA GetClassAByClassB(ClassB pObj)
{
ClassA objA = new ClassA();
objA.Prop1 = pObj.Prop1;
objA.NestedType.Prop2 = pObj.Prop2;
//....Some more.....
return objA;
}
它具有與使用Automapper完成的映射完全相同的靈活性.您仍然必須提供源對象中的哪個屬性被複制到目标對象中的哪些屬性.你隻需使用’=’而不是lambda表達式.
但是,如果您在域類中更改某些内容,則無論如何都必須更改此“映射”部分.那麼說服我使用Automapper的主要原因是什麼(正如我在開頭說的那樣,我很确定我錯過了一些重要的東西).