簡體   English   中英

使用AutoMapper的IMappingEngine和DI有什么好處(如果有的話)

[英]What are the benefits (if any) of using AutoMapper's IMappingEngine with DI

我對AutoMapper比較陌生(但已經很喜歡)並且已經通過Global.asax.cs調用的靜態方法使用Mapper.CreateMap<T,T>()來聲明我的映射配置文件。

但是,在閱讀了有關AutoMapper的更多信息之后,我還注意到了使用IoC容器(在我的情況下是StructureMap)和DI注入IMapperEngine接口的選項,這IMapperEngine我想知道除了那些之外我會得到什么(如果有的話)這些額外的好處在使用依賴注入 (模擬,控制反轉等)時獲得。

例如,IMapperEngine的使用是否會延遲加載配置文件,直到它們被使用或我完全脫離標記?

我對AutoMapper相對較新(但已經非常喜歡)並且已經通過Global.asax.cs中調用的靜態方法使用Mapper.Map聲明了我的映射配置文件。

我希望你不是那樣做的。 Mapper.Map方法用於執行對象實例之間的實際映射。 您應該在Global.asax.cs是使用Mapper.CreateMap靜態方法定義映射。

現在,就您對IMapperEngine接口的問題而言,最好始終使用代碼中的抽象。 在您的控制器操作中,您將不再使用Mapper.Map靜態方法調用進行硬編碼,而是使用您可以在單元測試中模擬的抽象。 沒有其他顯着的好處。

使用此界面不會推遲任何事情。 如果您注入了具體的Mapper.Engine實例,那么在調用IMapperEngine.Map方法時IMapperEngine.Map就是調用底層的Mapper.Engine.Map方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM