在asp.net应用程序下的外部程序集中的web api

时间:2013-04-30 13:19:08

标签: asp.net asp.net-web-api

我有一组包含在Web应用程序中的Web API。

我正在尝试将它们分成Web应用程序发布文件夹下的新dll。

分离后,使用以下路由代码,单个api调用成功。

但我需要初始化代码,如Ninject初始化和路由寄存器,它们最初位于Web应用程序的Application_Start()内部,放在新的dll中。我怎么能这样做,以便在第一次api调用之前调用相关的代码?

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

1 个答案:

答案 0 :(得分: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});