私が見つけたAutomapperの例のほとんどは、タイプ マッピングの管理に静的な Mapper オブジェクトを使用しています。私のプロジェクトでは、StructureMap を使用してオブジェクト構築の一部として IMapperEngine を挿入する必要があります。これにより、単体テストでマッパーをモックできるため、静的マッパーを使用できなくなります。AutoMapper プロファイルの構成もサポートする必要があります。
私の質問は、MyService のインスタンスが構築されたときに IMappingEngine のインスタンスを提供できるように、StructureMap レジストリを構成する方法です。
Service コンストラクターのシグネチャは次のとおりです。
public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)
そして、ここに StructureMap レジストリがあります
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>();
}
}