2013-04-30 2 views
3

У меня есть набор веб-API, которые содержатся в веб-приложении.web api во внешней сборке под приложением asp.net

Я пытаюсь разделить их на новую dll в папке публикации веб-приложения.

После разделения и со следующим кодом маршрутизации индивидуальный вызов api является успешным.

Но мне нужен код инициализации, такой как регистр инициализации и регистрации маршрута Ninject, которые изначально находятся внутри Application_Start() веб-приложения для размещения внутри новой dll. Как я могу это сделать, чтобы вызвать соответствующий код до первого вызова api?

routes.MapHttpRoute(
name: "DefaultApi", 
routeTemplate: "api/{controller}/{id}", 
defaults: new { id = RouteParameter.Optional } 
); 

ответ

1

Я думаю, что это будет не проблема вообще с маршрутизацией зарегистрированной во внешнем assebmly и некоторых Ninject кода тоже.

Но проблемы могут возникнуть, когда ваши контроллеры находятся на внешней сборке. Пожалуйста, прочитайте об этом подробнее здесь: http://www.strathweb.com/2012/06/using-controllers-from-an-external-assembly-in-asp-net-web-api/

Ввод ваших контроллеров в отдельный сборник очень прост. Вам просто нужно обновить регистрацию маршрутов, чтобы сообщить им, где искать контроллеры.

routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", 
       namespaces: new[] {"[Namespace of the Project that contains your controllers]"}, 
       defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional}); 
+0

но где/как я должен называть вещи инициализации Теперь внутри DLL перед первым апи вызывается, такие вещи, как Ninject инициализации ... которые были первоначально под названием внутри Application_Start внутри веб-приложения – Lys

+0

Вы можете назвать инициализации вещи внутри global.asax или снаружи. В любом случае, когда вы создаете любую внешнюю логику инициализации, вы должны вызывать ее из Application_Start из Global.asax, значит, логика может быть наружной, но, например, там должна быть инициализирована маршрутизация – Regfor

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