我有一组包含在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 }
);
答案 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});