Обработка ошибок OData WebApi 2

В моем веб-сервисе я переопределяю ExceptionHandler, но мне не ясно, как можно отформатировать исключение, чтобы оно соответствовало стандарту OData Error. Возможно, я неправильно подхожу к этому, так как не могу найти примеров в Интернете.

Насколько я понимаю, в веб-API 2 существует концепция глобальной обработки исключений, при которой вы используете собственный ExceptionHandler для обработки любых исключений, возникающих в службе. Ожидается, что исключение по-прежнему обновит ExceptionContext.Result новым IHttpActionResult(). Как форматировать данные, которые вы вводите в IHttpActionResult, для форматирования ошибки OData.

Ниже приведен фрагмент ExceptionHandler, и я застрял на том, как переопределить context.Result с правильным сообщением OData HttpResponse.

public class CustomExceptionHandler: ExceptionHandler
{
    public override void Handle(ExceptionHandlerContext context)
    {
        HttpResponseMessage msg = context.Request.CreateErrorResponse(HttpStatusCode.NotFound, new ODataError
        {
            ErrorCode = context.Exception.Message,
            Message = context.Exception.InnerException.Message,
            InnerError = new ODataInnerError
            {
                Message = context.Exception.InnerException.Message
            }
        });
        context.Result = //How do you wrap the OData HttpResponseMessage into a IHttpActionResult

    }


}

Любой совет приветствуется, спасибо, D


person darewreck    schedule 09.12.2015    source источник
comment
Вы смогли найти какое-либо решение для этого? Любые советы приветствуются. Спасибо   -  person Taiseer Joudeh    schedule 15.01.2016
comment
извините, я не вернулся к выяснению этого. Когда я это сделаю, я обновлю это.   -  person darewreck    schedule 19.01.2016