私はユニティ・コンテナの中に私のAutoMapper(バージョン5.2.0)プロファイルクラスを登録しようとしている(Unityのバージョン4.0.1)、そしてそれは私に例外を与えています 例外が発生しました:解決中:例外:InvalidOperationException - 現在の型AutoMapper.IConfigurationProviderは、インターフェイスであり、この型はIConsumer`1 [Commands.INewUserEmailCommand]、名前= "(なし)"です。タイプマッピングがありません。AutoMapperユニティAutoMapper.IConfigurationProvider号
ここにプロファイルクラスがあります:
public class AutoMapperBootstrap : Profile
{
public AutoMapperBootstrap()
{
this.CreateMap<IUserEmailDTO, MergeUserEmailRequest>();
}
}
そしてここユニティ登録抜粋です:
Profile typeMaps = new AutoMapperBootstrap();
var config = new MapperConfiguration(cfg => cfg.AddProfile(typeMaps));
container.RegisterInstance<IMapper>(config.CreateMapper(), new ContainerControlledLifetimeManager());
それから私は、どうやらUnityはについて何も知らないか、それはいくつかの余分なIConfigurationProviderインスタンスを必要とする注入されるIMapperインスタンスに依存コンストラクタを持っていますか?私は何が欠けていますか?私のコードがIMapperに依存するサービスを呼び出す必要があるとき、Unityは上記の例外をスローします。次に、コンストラクタインジェクションを使用してIMapperインスタンスを取得しようとしているサービスの例を示します。
public class FooService : IFooService
{
private readonly IMapper mapper;
public Foo(IMapper mapper)
{
this.mapper = mapper;
}
}
コンテナ登録をスキップして、すべてのマッピングを持つ静的インスタンスを使用するだけですか?静的なコンストラクタを使用して、常に利用可能になるように私のプロファイルを初期化することを考えています... – Andy