2016-06-30 4 views
0

プロジェクトリーダーは、Web API用のカスタム例外フィルタを作成して、すべての未処理の例外をキャッチしたいと考えています。私はWebApiConfigファイルにカスタムフィルタを追加しましたが、機能していますが、彼が望むすべての詳細を与えるわけではありません。彼は、体内でこの情報を500エラーを返したい:ExceptionFilterAttributeでカスタム情報を返す方法は?

{ 
    "code": 500, 
    "message": "My custom message" 
} 

私のハンドラのコードは、以下に示す500エラーを返しますが、体だけ

{ 
    "message": "My custom message" 
} 

どのように私は追加するには、これをカスタマイズすることができますを示していその情報が冗長であっても、「コード」番号

public class UnhandledExceptionAttribute : ExceptionFilterAttribute 
{ 
    public override void OnException(HttpActionExecutedContext context) 
    { 
     string message = "My custom message"; 
     context.Response = context.Request.CreateResponse(
      HttpStatusCode.InternalServerError, 
      new { 
       code = 500, 
       message = message 
      }); 
    } 
} 

答えて

1

ちょうど CreateResponse<T>拡張メソッドを使用します。私は簡単な答えがなければならないことを知っていましたが、私はそれを見つけることができませんでした。ありがとう。
+0

フェデリコ、完璧に動作します:

public class UnhandledExceptionAttribute : ExceptionFilterAttribute { public override void OnException(HttpActionExecutedContext context) { string message = "My custom message"; context.Response = context.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, message); } } 

関連する問題