2015-12-09 16 views
5

W moim serwisie internetowym nadpisuję ExceptionHandler, ale nie jest dla mnie jasne, w jaki sposób sformatować wyjątek, aby pasował do standardu OData Error. Być może podchodzę do tego źle, ponieważ nie mogę znaleźć żadnych przykładów w Internecie.OData WebApi 2 Obsługa błędów

Z mojego rozumowania, w web api 2 istnieje koncepcja globalnej obsługi wyjątków, w której używa się niestandardowego ExceptionHandler do obsługi wyjątków zgłaszanych w usłudze. Wyjątek nadal oczekuje aktualizacji ExceptionContext.Result za pomocą nowej funkcji IHttpActionResult(). W jaki sposób formatować dane wprowadzone do IHttpActionResult, aby sformatować do błędu OData.

Poniżej znajduje się fragment ExceptionHandler, a ja utknąłem na tym, jak zastąpić kontekst.Sprawdź poprawną wiadomość 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 

    } 


} 

Wszelkie porady ceniona, Dzięki, D

+0

udało ci się znaleźć jakieś rozwiązanie dla tego? Wszelkie wskazówki są mile widziane. Dzięki –

+0

Przepraszam, nie wróciłem do tego. Kiedy to zrobię, zaktualizuję to. – darewreck

Odpowiedz

0
context.Result = new System.Web.Http.Results.ResponseMessageResult(msg);