我们在代码库上使用基于构造函数的依赖注入,AutoMapper和Unity.
我们用一个通用接口包装了AutoMapper ......
public interface IMapper<TSource, TDestination>
{
TDestination Map(TSource source);
}
Run Code Online (Sandbox Code Playgroud)
还有一个实现这个接口的类......
public class AutomaticMapper<TSource, TDestination> : IMapper<TSource, TDestination>
{
public TDestination Map(TSource source)
{
return AutoMapper.Mapper.Map<TSource, TDestination>(source);
}
}
Run Code Online (Sandbox Code Playgroud)
这很有效,但这意味着对于我们在AutoMapper配置中定义的每个映射,我们需要执行额外的操作UnityContainer.RegisterType
.
这些类型映射几乎总是这种形式
container.RegisterType<IMapper<ClassA, ClassB>, AutomaticMapper<ClassA, ClassB>>();
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以告诉团结使用从映射IMapper
到AutomaticMapper
使用相同TSource
和TDestination
每个映射的默认类型映射?