4
我使用automapper(成功在一定程度上)到像這樣兩個接口之間進行多態性圖譜:Automapper:使用BeforeMap和AfterMap
configure.CreateMap<IFrom, ITo>()
.Include<FromImplementation1, ToImplementation1>()
.Include<FromImplementation2, ToImplementation2>()
... ;
這工作得很好。然而,除此之外,該接口包括方法簽名,這些都旨在映射之前修改對象的實現:
public interface IFrom
{
void PrepareForMapping();
}
正如你所看到的方法沒有返回,但設計之前修改對象的狀態映射被執行。目前這種方法在對象映射之前被手動調用,但我的目的是在映射發生之前自動執行該方法。我試圖按如下方式使用它:
configure.CreateMap<IFrom, ITo>()
.BeforeMap((x,y) => x.PrepareForMapping())
.Include<FromImplementation1, ToImplementation1>()
.Include<FromImplementation2, ToImplementation2>()
... ;
但是該方法永遠不會被調用,雖然映射本身仍然是工作的罰款。我已經爲PrepareForMapping()方法的每個實現都設置了斷點,並且它們都沒有被擊中。所以我得出的結論是,我誤解了BeforeMap/AfterMap的工作方式,或者我做錯了什麼(或兩者都有)。
非常感謝。