У меня есть проект MVC, где я использую AutoMapper для сопоставления объектов Entity Framework для просмотра моделей. Код, который определяет сопоставления, находится в классе boostrapper, который вызывается автоматически при запуске приложения (App_Start, Global.asax)AutoMapper в Service Layer
Я делаю некоторые рефакторинг моего кода, чтобы поместить всю свою бизнес-логику в уровень обслуживания, потому что нам нужно реализовать пакетный процесс, который выполняется ежедневно, который выполняет ту же логику, что и приложение MVC.
Одна из проблем, с которыми я сталкиваюсь, теперь мне нужно сопоставить объекты моей базы данных с некоторыми объектами домена на моем уровне обслуживания. Я думаю, что все будет хорошо работать в приложении MVC, потому что bootstrapper все еще вызывается в Global.asax.
Есть ли способ, которым мой код преобразования работает как для моего приложения MVC, так и для другого приложения, отличного от MVC (может быть служба WCF, консольное приложение и т. Д.) Где я могу поместить этот код сопоставления, чтобы он получал вызываемые обоими приложениями только один раз?
Где вы собираетесь принимать свои услуги? Если в другом приложении вы должны выполнить сопоставление, как в своем приложении MVC. В общем случае вы можете переместить код сопоставления в общую библиотеку. – paramosh
Да в другом проекте. Есть ли хороший способ убедиться, что bootstrapper вызывается в другом проекте? Если это служба WCF, есть ли какие-либо приложения app_start для WCF? – Dismissile
Посмотрите, вот хороший ответ на ваш вопрос http://stackoverflow.com/questions/5903843/initialize-in-wcf-service-application-project Также некоторые полезные решения описаны здесь http://blogs.msdn.com/b /wenlong/archive/2006/01/11/511514.aspx – paramosh