我正在使用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);
}
}
我很想知道:
答案 0 :(得分:1)
GlobalConfiguration.Configure
接受Action<HttpConfiguration>
作为参数。这是“引用功能”的一种方式。在不使用WebApiConfig.Register
的情况下使用()
时,不是对函数的调用而是作为参数传递的委托。 WebApiConfig.Register
具有正确的签名,即接受HttpConfiguration
作为参数,这就是为什么您可以将其传递给GlobalConfiguration.Configure
的原因。
稍后,框架将调用您传递的方法并提供参数。