私は頻繁に AutoMapper を使用して、Model (Domain) オブジェクトを ViewModel オブジェクトにマップします。これらのオブジェクトは、Model/View/View-Model パターンでビューによって使用されます。
これには多くの「Mapper.CreateMap」ステートメントが含まれます。これらはすべて実行する必要がありますが、アプリケーションのライフサイクルで一度だけ実行する必要があります。
技術的には、Application_Start() メソッド (これは ASP.NET MVC アプリケーションです) から呼び出される静的メソッドにすべてを保持する必要があります。
ただし、多くの異なるマッピングの問題を 1 つの中心的な場所にグループ化するのは間違っているようです。
特に、マッピング コードが複雑になり、書式設定やその他のロジックが関係する場合は特にそうです。
関連する ViewModel の近くに保持されるようにマッピング コードを整理するより良い方法はありますか?
(私は 1 つのアイデアを思いつきました。各 ViewModel に 'CreateMappings' メソッドを配置し、BaseViewModel でインスタンス化時にこのメソッドを呼び出すことです。ただし、このメソッドはアプリケーションのライフサイクルで1 回しか呼び出されないため、追加のロジックが必要です。 CreateMappings メソッドが呼び出された ViewModel タイプのリストをキャッシュし、そのリストにない ViewModel に対して必要な場合にのみ呼び出します。)