我们使用的代码库基于构造函数的依赖注入,AutoMapper和Unity默认的团结类型映射。指定为通用接口和类对
我们包裹AutoMapper通用接口...
public interface IMapper<TSource, TDestination>
{
TDestination Map(TSource source);
}
而实现此接口的类...
public class AutomaticMapper<TSource, TDestination> : IMapper<TSource, TDestination>
{
public TDestination Map(TSource source)
{
return AutoMapper.Mapper.Map<TSource, TDestination>(source);
}
}
这种运作良好,但它意味着,每映射我们在AutoMapper配置中定义我们需要执行额外的UnityContainer.RegisterType
。
这些类型映射几乎都是形式
container.RegisterType<IMapper<ClassA, ClassB>, AutomaticMapper<ClassA, ClassB>>();
是没有什么办法,我们可以告诉统一使用,从IMapper
映射的默认类型映射到AutomaticMapper
使用相同TSource
和TDestination
为每他们?