Asp.net mvc ASP.net Web API 2:如何在不传递Global.asax.cs文件中的参数的情况下调用WebApiConfig.Register

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(

我正在使用ASP.NETWebAPI2.0创建restful服务。查看代码时,下面是RouteConfig.cs类文件的代码:

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


稍后,框架将调用您传递的方法并提供参数。

感谢您的澄清,因此基本上委托函数在这里起着重要作用。