![](/img/trans.png)
[英]AutoMapper not instantiating IMappingEngine using SimpleInjector and WebApi2
[英]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.