この質問と同様に: どこに AutoMapper.CreateMaps を配置しますか?
非静的 AutoMapper 初期化を配置する推奨される場所はどこですか?
var map = new MapperConfiguration( cfg => ... ).CreateMapper();
コントローラーからアクセスできるようにするために、マップ変数を格納する推奨される場所はどこですか?
前もって感謝します。
この質問と同様に: どこに AutoMapper.CreateMaps を配置しますか?
非静的 AutoMapper 初期化を配置する推奨される場所はどこですか?
var map = new MapperConfiguration( cfg => ... ).CreateMapper();
コントローラーからアクセスできるようにするために、マップ変数を格納する推奨される場所はどこですか?
前もって感謝します。
これに対する適切なアプローチは、依存性注入を使用して、アクセスが必要なコンポーネントにマッパーを注入することです。AutoMapper に対するこの新しいアプローチは、インターフェイスをモックするだけでよいため、単体テストにも最適です。
この場合、AutoFaq を IoC コンテナーとして使用し、AutoMapper を次のようにセットアップします。
builder.RegisterInstance(AutoMapperConfig.GetConfiguredMapper()).As<IMapper>();
GetConfiguredMapper は、MapperConfiguration の CreateMapper メソッドを呼び出して IMapper を返します。
その後、AutoFaq にすべてのワイヤアップとコンストラクターの注入を行わせることができます。
古いアプローチを本当に維持したい場合は、アプリケーションの静的クラスで IMapper をいつでもラップできます。
コードのモックと単体テストが非常に簡単になるので、私は間違いなく新しいバージョンを好みます。