CreateMissingTypeMaps
オプションでtrueに設定するだけです:
var dto = Mapper.Map<FooDTO>
(foo, opts => opts.CreateMissingTypeMaps = true);
頻繁に使用する必要がある場合は、ラムダをデリゲート フィールドに格納します。
static readonly Action<IMappingOperationOptions> _mapperOptions =
opts => opts.CreateMissingTypeMaps = true;
...
var dto = Mapper.Map<FooDTO>(foo, _mapperOptions);
アップデート:
上記のアプローチは、AutoMapper の最近のバージョンでは機能しなくなりました。
代わりに、CreateMissingTypeMaps
true に設定してマッパー構成を作成し、この構成からマッパー インスタンスを作成する必要があります。
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMissingTypeMaps = true;
// other configurations
});
var mapper = config.CreateMapper();
古い静的 API (推奨されなくなりました) を使い続けたい場合は、次のようにすることもできます。
Mapper.Initialize(cfg =>
{
cfg.CreateMissingTypeMaps = true;
// other configurations
});
更新 2 - Automapper 9 以降:
Automapper バージョン 9.0 以降、CreateMissingTypeMaps
API は削除されました。Automapper のドキュメントでは、マップを手動で、またはリフレクションを使用して明示的に構成することが提案されています。
https://docs.automapper.org/en/stable/9.0-Upgrade-Guide.html#automapper-no-longer-creates-maps-automatically-createmissingtypemaps-and-conventions