簡體   English   中英

ASP.net Web API 2:如何在不傳遞Global.asax.cs文件中的參數的情況下調用WebApiConfig.Register

[英]ASP.net Web API 2:How WebApiConfig.Register is being called without passing parameter in Global.asax.cs file

我正在使用ASP.Net WEB API 2.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);
    }
}

我很好奇:

  1. WebApiConfig.Register方法的調用方式,因為我們沒有顯式傳遞任何參數。

GlobalConfiguration.Configure接受Action<HttpConfiguration>作為參數。 這是“引用功能”的一種方式。 使用不帶()WebApiConfig.Register ,不是對函數的調用,而是作為參數傳遞的委托。 WebApiConfig.Register具有正確的簽名,即接受HttpConfiguration作為參數,這就是為什么您可以將其傳遞給GlobalConfiguration.Configure

稍后,框架將調用您傳遞的方法並提供參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM