1

たぶんこれはばかげた質問かもしれませんが、私には明らかではありません:(

var address = new Address { Id = 1, Name = "John Doe" };

// Configure AutoMapper
Mapper.CreateMap<Address, AddressViewModel>();

// Perform mapping
var viewModel = Mapper.Map<Address, AddressViewModel>(address);

AutoMapperMapper.CreateMap<Address, AddressViewModel>();はマッピングが実行された後でこの情報を取得するため、Imho は必要ありません。

では、なぜこれらの構成を作成する必要があるのでしょうか?

4

3 に答える 3

5

source をすばやく参照すると、そのマッピングがエンジンに保存されているように見えるため、後続の呼び出しはエンジンからマッピング データをロードします。

これはおそらく、リフレクションが高価になる可能性があり、AutoMapper が Mapper.Map だけを使用する頻度を知る方法がないためです。定義: キャッシング:)

于 2012-08-01T22:14:16.757 に答える
2

さらに、このパターンは、構成が正しいことを検証するのに非常に役立ちます ( https://github.com/AutoMapper/AutoMapper/wiki/Configuration-validationを参照)。一部のマッピングにはかなり具体的な構成が必要であり、これによりエラーが早期に検出されます。

于 2012-08-02T07:51:09.817 に答える
2

CreateMap 式で任意の数の .ForMember / .AfterMap (など) チェーンを指定した可能性があるため、マッピングの実行時に Automapper がこの情報をすべて取得するとは限りません。すべてのマッピング呼び出しで、そのすべてを繰り返す必要はありません。

于 2012-08-02T10:14:32.337 に答える