12

ResponseStatus は必要ですか?

ウィキによると、例外のシリアル化を処理するには、応答 DTO に ResponseStatus プロパティが必要です。

https://github.com/ServiceStack/ServiceStack/wiki/検証

ただし、応答 DTO に ResponseStatus プロパティがなくても、ResponseStatus が自動的に生成されるようです。

ResponseStatus プロパティは必要ですか?

4

1 に答える 1

12

Error Handling DocsResponseStatusでは、データが入力されたDTO を返すサービスを制御する方法について説明しています。

エラー応答タイプ

例外がスローされたときに返されるエラー応答は、従来の名前の{RequestDto}ResponseDTO が存在するかどうかによって異なります。

存在する場合:

サービス メソッドの{RequestDto}Response応答タイプに関係なく、 が返されます。{RequestDto}ResponseDTO にResponseStatusプロパティがある場合は、値が取り込まれます。それ以外の場合、 ResponseStatusは返されません。{ResponseDto}Response(クラスとプロパティを[DataContract]/[DataMember]属性で装飾した場合は、値を設定するためにResponseStatusも装飾する必要があります)。

そうでない場合:

ジェネリックErrorResponseは、入力されたResponseStatusプロパティで返されます。

サービス クライアントは、さまざまなエラー応答タイプを透過的に処理します。JSON/JSV/etc のようなスキーマのない形式の場合、カスタムまたはジェネリックでResponseStatusErrorResponseを返す間に実際に目に見える違いはありません。どちらもネットワーク上で同じ応答を出力するためです。

カスタム例外

最終的に、すべての ServiceStack WebServiceExceptions は、HTTP エラー ステータスと共に返される、データが入力されたResponseStatusを持つ単なるレスポンス DTOです。例外が返される方法をカスタマイズするには、次のようなさまざまな方法があります。

スタック トレースを有効にする

デフォルトでは、応答 DTO での StackTraces の表示はデバッグ ビルドでのみ有効になりますが、この動作は次の方法でオーバーライドできます。

csharp SetConfig(new HostConfig { DebugMode = true });

于 2012-08-01T00:04:19.320 に答える