Asp.net mvc ASP.net Web API 2:如何在不传递Global.asax.cs文件中的参数的情况下调用WebApiConfig.Register
我正在使用ASP.NETWebAPI2.0创建restful服务。查看代码时,下面是RouteConfig.cs类文件的代码:Asp.net mvc ASP.net Web API 2:如何在不传递Global.asax.cs文件中的参数的情况下调用WebApiConfig.Register,asp.net-mvc,asp.net-web-api,static-methods,Asp.net Mvc,Asp.net Web Api,Static Methods,我正在使用ASP.NETWebAPI2.0创建restful服务。查看代码时,下面是RouteConfig.cs类文件的代码: public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
在Global.asax.cs文件中,RouteConfig类的RegisterRoutes方法被调用,如下所示:
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
我很想知道:
如何调用WebApiConfig.Register方法,因为我们没有显式传递任何参数。
配置接受操作作为参数。这在某种程度上是指功能。当您使用WebApiConfig.Register时,它不是对函数的调用,而是作为参数传递的委托。WebApiConfig.Register具有正确的签名,即接受HttpConfiguration作为参数,这就是为什么您可以将其传递给GlobalConfiguration.Configure
稍后,框架将调用您传递的方法并提供参数。感谢您的澄清,因此基本上委托函数在这里起着重要作用。