- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为 Automapper 找到的大多数示例使用静态 Mapper 对象来管理类型映射。对于我的项目,我需要使用 StructureMap 将 IMapperEngine 作为对象构造的一部分注入(inject),以便我们可以在单元测试中模拟映射器,因此我们不能使用静态映射器。我还需要支持配置 AutoMapper Profiles。
我的问题是如何配置 StructureMap 注册表,以便在构造 MyService 实例时它可以提供 IMappingEngine 实例。
这是服务构造函数签名:
public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)
public class MyRegistry : StructureMap.Configuration.DSL.Registry
{
public MyRegistry()
{
For<IMyRepository>().Use<MyRepository>();
For<ILogger>().Use<Logger>();
//what to do for IMappingEngine?
}
}
public class MyAutoMapperProfile : AutoMapper.Profile
{
protected override void Configure()
{
this.CreateMap<MyModel, MyDTO>();
}
}
最佳答案
Mapper
类有一个静态属性 Mapper.Engine
.使用它向容器注册引擎:
For<IMappingEngine>().Use(() => Mapper.Engine);
class MyRegistry : Registry
{
public MyRegistry()
{
For<IMyRepository>().Use<MyRepository>();
For<ILogger>().Use<Logger>();
Mapper.AddProfile(new AutoMapperProfile());
For<IMappingEngine>().Use(() => Mapper.Engine);
}
}
IMappingEngine
之后将提供静态属性的值
Mapper.Engine
这是使用您的自定义配置
AutoMapperProfile
.
关于dependency-injection - 如何使用 StructureMap 注入(inject) AutoMapper IMappingEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12604896/
使用 AutoMapper 时,当使用 ConvertUsing 为作为容器的类型定义自定义映射时,我经常需要在映射函数中调用 IMappingEngine.Map。这是必要的,因为它允许我重用子映射
我为 Automapper 找到的大多数示例使用静态 Mapper 对象来管理类型映射。对于我的项目,我需要使用 StructureMap 将 IMapperEngine 作为对象构造的一部分注入(i
我对 AutoMapper 比较陌生(但已经很喜欢它了)并且一直在使用 Mapper.CreateMap() 声明我的映射配置文件通过 Global.asax.cs 中调用的静态方法. 然而,在阅读了
我是一名优秀的程序员,十分优秀!