コンストラクターベースの依存性注入、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>>();
Unity にデフォルトのタイプ マッピングを使用するように指示する方法はIMapper
ありAutomaticMapper
ますTSource
かTDestination
?