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
udało ci się znaleźć jakieś rozwiązanie dla tego? Wszelkie wskazówki są mile widziane. Dzięki –
Przepraszam, nie wróciłem do tego. Kiedy to zrobię, zaktualizuję to. – darewreck