In an ApiController action I need to close a connection to a database as soon as the action is finished executing.

Under a controller I override OnActionExecuted to accomplish this.

How would I accomplish this under an ApiController action?

Thanks

有帮助吗?

解决方案

You could override the ExecuteAsync method:

public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
    return base
        .ExecuteAsync(controllerContext, cancellationToken)
        .ContinueWith(t => 
        {
            // the controller action has finished executing, 
            // your custom code could come here ...

            return t.Result;
        });
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top