Мы отображаем иерархию домена в иерархию Dto и использовали ReverseMap (), чтобы упростить отображение обратно в домен.
Включение всех отдельных производных в сопоставление было довольно раздражающим. Вот почему мы попытались использовать IncludeAllDerived (). Некоторое время это работало хорошо, но через некоторое время у нас появились странные исключения:
System.ArgumentException : Cannot create an instance of abstract type Xxx.Base
После некоторых исследований мы выяснили, что это произошло из-за использования IncludeAllDerived (). Поскольку мы изменили его на явное включение, он снова заработал.
Вопрос, который мы задавали себе, был: «Это IncludeAllDerived или ReverseMap, или Automapper не может обрабатывать абстрактные базовые типы или что-то еще».