Order と OrderDTOの 2 つのエンティティがあり、 AutoMapperを使用してそれらを一緒にマップしています。
いくつかの条件に基づいて、これらのエンティティを別の方法でマッピングしたいと考えています。
実際、これらのエンティティに対して2 つ以上の異なるマッピング ルール( ) が必要です。CreateMap
また、関数を呼び出すときに、使用するマッピング ルールをMap
エンジンに伝えたいと考えています。
この質問のおかげで: WCF サービスで CreateMap と Map のインスタンス バージョンを使用していますか? 1つのアプローチは、マッパーの異なるインスタンスを使用することで、それぞれが独自のマッピングルールを持つことができます:
var configuration = new ConfigurationStore(new TypeMapFactory(), MapperRegistry.AllMappers());
var mapper = new MappingEngine(configuration);
configuration.CreateMap<Dto.Ticket, Entities.Ticket>()
より良い解決策はありますか?
Jimmy Bogard (AutoMapper の作成者)がここで述べたように: Using Profiles in Automapper to map the same types with different logic :
個別の Configuration オブジェクトを作成し、それぞれに個別の MappingEngine を作成することをお勧めします。Mapper クラスは、ライフサイクル管理を備えた、それらのそれぞれに対する単なる静的ファサードです。
どのようなライフサイクル管理を行う必要がありますか?