Как настроить AutoMapper, если не приложение ASP.net? - PullRequest
3 голосов
/ 10 мая 2010

Я использую AutoMapper в ряде проектов в рамках моего решения. Эти проекты могут быть развернуты независимо на нескольких серверах.

В документации к AutoMapper сказано:

Если вы используете статический маппер метод, конфигурация нужна только для произойдет один раз в AppDomain. Это означает лучшее место, чтобы положить код конфигурации находится в приложении запуск, такой как файл Global.asax для приложений ASP.NET.

Пока некоторые проектов будут ASP.net - большинство из них - библиотеки классов / службы Windows.

Где я должен настраивать свои сопоставления в этом случае?

Ответы [ 2 ]

2 голосов
/ 10 мая 2010

Насколько я могу судить, идея о том, что это требуется только один раз для каждого AppDomain, остается неизменной. Я всегда выполняю свои сопоставления при инициализации самой программы. Хотя я не использую AutoMapper, я использую библиотеку IoC (Windsor), которая требует своего рода сопоставления, и это делается из моего файла program.cs. Поэтому, когда приложение загружается, оно выполняет сопоставление, и поскольку преобразователь является статическим и находится в общей библиотеке, он доступен глобально.

Я не знаю, отвечает ли это на ваш вопрос или нет, но, по сути, каждое приложение имеет точку входа, и если вам нужны ваши сопоставления сразу после ввода, тогда запись - лучшее место для их размещения.

0 голосов
/ 19 ноября 2010

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

    protected void Application_Start()
    {
        RegisterMaps();
    }

    private void RegisterMaps()
    {
        WebAutoMapperSettings.Register();
        BusinessLogicAutoMapperSettings.Register();
    }

Таким образом, я могу легко вызвать BusinessLogicAutoMapperSettings.Register (), если бы мне пришлось повторно использовать только свою DLL BusinessLogic в другом приложении или веб-сервисе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...