[英]What pattern is being done in the Global.asax.cs file in ASP.NET MVC 4?
[英]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);
}
}
我很好奇:
GlobalConfiguration.Configure
接受Action<HttpConfiguration>
作為參數。 這是“引用功能”的一種方式。 使用不帶()
的WebApiConfig.Register
,不是對函數的調用,而是作為參數傳遞的委托。 WebApiConfig.Register
具有正確的簽名,即接受HttpConfiguration
作為參數,這就是為什么您可以將其傳遞給GlobalConfiguration.Configure
。
稍后,框架將調用您傳遞的方法並提供參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.