0
// SOURCE
class A {
public B B;
public C C;
}
class B { public int X; }
class C { public int Y; }
// DESTINATION
class D {
public int X;
public int Y;
}
// I want to configure following operation
// without mapping each (X and Y) fields explicitly.
D.X = A.B.X;
D.Y = A.C.Y;
// here is the essence of what I am trying to accomplish.
Mapper.CreateMap<B, D>();
Mapper.CreateMap<C, D>();
var map = Mapper.CreateMap<A, D>();
map.ForMember(dst => dst, opt => opt.MapFrom(src => src.B));
map.ForMember(dst => dst, opt => opt.MapFrom(src => src.C));
有什麼建議?
注意:我知道,如果我將D.X轉換爲D.BX和D.Y轉換爲D.CY,它將起作用。我想在不添加D的屬性的前提下完成此操作。我也可以通過使用Map的「填充」版本來實現這一點。
是的,那樣做。我有很多領域,我不想明確地映射它們。我確實說過'沒有在問題中明確地映射每個(X和Y)字段「。 – 2012-07-27 02:53:53
是的,我的意思是A.C.Y,而不是A.B.Y.謝謝你指出。 – 2012-07-27 02:54:40
你的確說過,出於某種原因,我認爲你的意思是沒有'CreateMap '和'CreateMap'行(這不應該是扁平化所必需的)。在我看來,你已經知道我會提供相同的選項,要麼重命名D中的屬性,要麼使用ForMember顯式映射每個屬性。我想不出有任何其他的辦法,所以如果你願意,我會很樂意刪除我的答案,只是讓我知道。 –
danludwig
2012-07-27 11:18:23