ApiController
在上節(jié)中,講到如何選擇并激活對應的IHttpController,而一般我們在開發(fā)中使用的是ApiController
public abstract class ApiController : IHttpController, IDisposable{ public virtual Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { this.Initialize(controllerContext); HttpActionDescriptor actionDescriptor = services.GetActionSelector().SelectAction(controllerContext); HttpActionContext actionContext = new HttpActionContext(controllerContext,actionDescriptor); return services.GetActionInvoker().InvokeActionAsync(actionContext, cancellationToken); } }
在ApiController中,我們看到通過內置的DI容器選擇出對應的HttpActionDescriptor.本節(jié)重點內容就是介紹SelectAction方法.