AutoMapper Getting started
2325 ワード
AutoMapperとは何ですか.
AutoMapperはオブジェクトからオブジェクトへのマッピング関係であり、オブジェクトからオブジェクトへのマッピングは、あるタイプのオブジェクトを変換して異なるタイプのオブジェクトに入力することによって動作します.AutoMapperが興味深いのは、複雑な作業をタイプオブジェクト変換アルゴリズムから削除する興味深いルールを提供していることです.
タイプオブジェクトがAutoMapperによって確立された規則に従う限り、タイプオブジェクト間の変換に追加の構成はほとんど必要ありません.
なぜAutoMapperを使うのですか?
タイプ変換コードは嫌で、テストタイプ変換コードはもっと嫌で、AutoMapperは非常に簡単な構成メカニズムを提供して、タイプ変換テストも同様に簡単になって、今本当に関心を持つ必要がある問題はwhy use object-object mappingですか?
タイプ変換はプロジェクトの多くの場所で発生しますが、ほとんどはUI/Domainの間、またはServices/Domainの間で発生します.通常、1つの関心のあるものと別の関心のあるものは一致しません.
したがって、オブジェクトからオブジェクトへのマッピングは独立したモデルを生成し、各レイヤのオブジェクトの変化がより独立し、オブジェクトが存在するレイヤにのみ影響し、他のレイヤには影響しません.
AutoMapperの使用方法
まず、Sourceタイプとターゲットタイプが必要です.このターゲットタイプは、設計当初はそのレイヤの影響を受けますが、AutoMappersは、ターゲットオブジェクトのメンバー名とソースオブジェクトのメンバー名が一致している限り、よく機能します.たとえば、FirstNameというソース・イメージ属性があります.
ターゲットオブジェクトのメンバー名であるFirstNameのプロパティに自動的にマッピングされ、AutoMapperもFlatteningをサポートします.
ソースタイプをターゲットタイプにマッピングすると、AutoMapperは空の参照例外を無視します.これはデフォルトの設計です.この設計が好きでない場合は、AutoMapper Custom-value-resolverと組み合わせて、必要に応じて使用できます.
2つのタイプがあり、AutoMapperを参照すると、この2つのタイプにマッピングを追加できます.
Mapper.CreateMap<Order, OrderDto>();
左のタイプはソースタイプ、右のタイプはターゲットタイプで、次の方法でマッピングを実行します.
OrderDto dto = Mapper.Map<OrderDto>(order);
AutoMapperにも非汎用的な方法があります.
AutoMapperを構成する場所はどこですか?
静的マッピング方法を使用する場合、appDomainで一度だけ構成する必要があります.これは、Globalなどの構成コード方法をプログラム起動項目に配置することが最善の選択であることを意味します.asax.説明したいのはbootstrapper(起動ローダ)内で自分を構成し、
このbootstrapperは起動方法とも呼ばれています.
my mappingsをテストするにはどうすればいいですか?
マッピングテストを作成します.2つのことをします.
AutoMapperConfiguration.Configure();
Mapper.AssertConfigurationIsValid();
https://github.com/AutoMapper/AutoMapper/wiki/Getting-started