我们在代码库上使用基于构造函数的依赖注入、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