2013-06-21 4 views
1

Я еще не смотрел исходный код AutoMapper, но собирался внести некоторые изменения в контроллер API в своем решении и подумал.ASP.NET Mvc - Лучшая практика AutoMapper - Производительность

Способ, которым я хотел бы кодировать, чтобы мои методы управления были максимально краткими, поскольку для экземпляров я использую общий атрибут Исключения для обработки сценариев try{}catch{}.

Таким образом, только код, абсолютно соответствующий действию контроллера, фактически находится в методе действий.

Так что я только что прибыл в ситуацию, когда мне нужно создать карту AutoMapper для метода. Первоначально я думал, что добавлю это (как я сделал ранее) к конструктору контроллера, чтобы он был доступен сразу.

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

Учитывая, что контроллеры созданы и уничтожены за каждый запрос, это может стать дорогостоящим.

Каковы рекомендации по этому вопросу? С учетом того, что AutoMapper получает доступ к статически, мне было интересно, живут ли они вне жизненного цикла запроса и внутренне проверяют существующую карту перед созданием нового каждый раз, когда вызывается CreateMap()?

ответ

3

Вы должны создать свои карты (CreateMap) один раз за AppDomain, в идеале, когда начинается этот домен (Application_Start).

+0

Это также имеет больший смысл, так как я просто смотрел исходный код для «AutoMapper», и он действительно живет за время ожидания запроса. Спасибо Дарин – Jammer

Смежные вопросы