В какую папку поместить Auto Mapper Profiler Class? - PullRequest
0 голосов
/ 23 октября 2018

Где разместить класс профилировщика Mapping?В папке слоя доступа к данным?Папка бизнес-уровня?В папке контроллера?

public class MappingProfile : Profile {
    public MappingProfile() {
        // Add as many of these lines as you need to map your objects
        CreateMap<User, UserDto>();
        CreateMap<UserDto, User>();
    }
}

Ответы [ 4 ]

0 голосов
/ 23 октября 2018

Это зависит от ваших потребностей, я использую его для отображения ViewModels с классами Code-First Model.Я создал новую папку / пространство имен Mappings , например yourProject.Mappings , и поместил в нее класс AutoMapperProfileConfiguration: Profile .

0 голосов
/ 23 октября 2018

Как уже упоминалось здесь для ASP.net-MVC, это в основном вопрос выбора, основанный на имеющейся у вас архитектуре решения, даже если вы можете поместить его в другой проект (например, проект домена в архитектуре onion).Конечно, для многоуровневых архитектур у вас может быть несколько профилей и конфигураций.

, но для ядра asp.net, как и в некоторых руководствах, вы можете иметь папку Extension для размещения атрибутов проверки, атрибутов фильтра, профиля ии т. д. для решения одного проекта.и для того, чтобы состоять для внедрения зависимостей, я предложу поместить Imapper интерфейс в конструктор контроллера и вызвать services.AddAutoMapper() в ConfigureServices из Startup.cs.

0 голосов
/ 23 октября 2018

Зависит от самого профиля, т.е.

  • что отображается?
  • и где вы собираетесь использовать отображение (на каком слое)?

Если единственное место, где вы отображаете, находится на самом верхнем уровне, то, вероятно, профиль там лучше всего подходит,
, чтобы минимизировать слои, на которые вы ссылаетесь на автопреобразователь.

0 голосов
/ 23 октября 2018

Это зависит от вашего архитектурного дизайна.

Разные люди предпочитают разные места для размещения профильных классов.

Мое личное мнение: я всегда создаю проект под названием AutoMapperMapping для размещения всех automapper связанных вещей и направляю решение dll в те места, которые мне нужны.

Если выследуя трехуровневой архитектуре, вы можете поместить их в бизнес-уровень.И если вы используете auto mapper в вашем контроллере, тогда вы можете поместить отображение в отдельную папку в самом проекте вашего хоста.

...