5

Webサービスでは、ExceptionHandlerをオーバーライドしますが、OData Error標準に合わせて例外をどのようにフォーマットするかはわかりません。おそらく私はそれが間違って近づいているので、私はオンラインでの例を見つけることができません。OData WebApi 2エラー処理

私の理解では、Web API 2では、サービスでスローされた例外を処理するカスタムExceptionHandlerを使用するグローバル例外処理の概念があります。 Exceptionはまだ新しいIHttpActionResult()でExceptionContext.Resultを更新すると予想されます。どのようにIHttpActionResultに入力したデータをOData Errorにフォーマットするのですか?

以下はExceptionHandlerのスニペットですが、私は正しいOData HttpResponseメッセージでcontext.Resultをオーバーライドする方法に固執しています。

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

+0

あなたは、このための任意の解決策を見つけることができましたか?任意のヒントが評価されます。ありがとう –

+0

申し訳ありませんが、私はこれを理解することに戻っていません。私がするとき、私はこれを更新します。 – darewreck

答えて

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