asp.net应用程序下外部程序集中的web api
我有一套包含在web应用程序中的web API 我正在尝试将它们分离到web应用程序发布文件夹下的新dll中 分离后,使用以下路由代码,单个api调用成功 但是我需要像Ninject initialization和routing register这样的初始化代码,它们最初位于web应用程序的应用程序_Start()中,然后放入新的dll中。如何才能在第一次api调用之前调用相关代码asp.net应用程序下外部程序集中的web api,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有一套包含在web应用程序中的web API 我正在尝试将它们分离到web应用程序发布文件夹下的新dll中 分离后,使用以下路由代码,单个api调用成功 但是我需要像Ninject initialization和routing register这样的初始化代码,它们最初位于web应用程序的应用程序_Start()中,然后放入新的dll中。如何才能在第一次api调用之前调用相关代码 routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我认为在外部Assembly和一些nInject代码中注册路由不会有任何问题 但问题可能是当您的控制器在外部组件中时。请在此详细阅读: 将控制器放在一个单独的程序集中非常简单。你只需要更新你的路线登记,告诉他们在哪里可以找到管制员
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});
但是,在调用第一个api之前,我现在应该在dll中的何处/如何调用初始化内容,例如ninject初始化…最初在web应用程序内部调用的东西\u在web应用程序内部启动您可以在global.asax内部或外部调用初始化内容。无论如何,当您创建任何外部初始化逻辑时,您应该从应用程序调用它。\u Start from Global.asax,这意味着逻辑可以在外部,但例如路由应该在那里初始化