ApiController

在上节中,讲到如何选择并激活对应的IHttpController,而一般我们在开发中使用的是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.本节重点内容就是介绍SelectAction方法.

HttpActionDescriptor

网友评论