FaultContract属性をRIA Servicesで使用すると、Silverlightの例外の一部として追加情報を渡すことができますか?RIAサービスとFaultContract
答えて
私は逆コンパイルされたRIAサービスコードを狩りに行きました。クライアントに送信されるエラー情報を大幅に変更することはできないようです。
DomainServiceのOnError()
メソッドをオーバーライドすることはできますが、カスタム例外タイプであっても、任意の情報を戻すことはできません。
理由はDomainServices.Hosting.QueryProcessor
クラスの例外処理の中に埋め込まれています。
ドメイン操作で未処理の例外が発生した場合、その操作は破棄され、最終的にはFaultException()がスローされます(ネイティブ処理のWCF)。
Unfortuantely、DomainServiceFault
クラスが...それが唯一のいくつかのプロパティを持っている...非常に軽量である
public class DomainServiceFault
{
public int ErrorCode { get; set; }
public string ErrorMessage { get; set; }
public bool IsDomainException { get; set; }
public string StackTrace { get; set; }
public IEnumerable<ValidationResultInfo> OperationErrors { get; set; }
public IEnumerable<ValidationResult> GetValidationErrors()
{}
}
、これらはそのようServiceUtility.CreateFaultExceotion()
に移入されています
DomainServiceFault detail = new DomainServiceFault();
<snip/>
detail.ErrorCode = domainException.ErrorCode;
detail.ErrorMessage = ServiceUtility.FormatExceptionMessage((Exception) domainException);
detail.IsDomainException = true;
if (current != null && !current.IsCustomErrorEnabled)
detail.StackTrace = domainException.StackTrace;
return new FaultException<DomainServiceFault>(detail, new FaultReason(new FaultReasonText(detail.ErrorMessage ?? string.Empty, CultureInfo.CurrentCulture)));
それは価値があります検証のエラーではなく、例外の場合には、OperationErrors
は入力されません。
これはすべて、私がDomainServiceエラーハンドラにカスタム例外情報をラップまたはアタッチすることはできないと考えていることです(これは本当に残念です)。
この小さな欠点はすべて、RIA Servicesフレームワークが現実の世界のシナリオのために準備が整っていないように感じます。 ありがとうございました! – sternr
@sternr私たちはしばしばそう感じる。私は、RIA Servicesは基本的なデータ・モデルとアプリケーションでうまく機能すると思います。非常に詳細で複雑なアプリケーションの場合、苦労し始めます。 –
- 1. WCF - FaultContractとレスポンスデータコントラクト
- 2. Silverlight 3 - RIAサービスとLINQ
- 3. RIAサービスとEF検証
- 4. Riaサービスとナビゲーションプロパティの問題
- 5. WCFデータサービスとWCF RIAサービス
- 6. WCF RIAサービス
- 7. RIAサービス変更トラッキング
- 8. Silverlight 4 Riaサービスと複数のスレッド
- 9. WCF Riaサービスと巡回の参照
- 10. Silverlight 4、RIA認証サービスとロール
- 11. .NET RIAサービスとは何ですか?
- 12. Windows Workflow、WCF RiaサービスとSilverlightの例
- 13. カスタムODataサービス(WCF RIAサービスなし)+ MVVM
- 14. WCF RIAサービスSP1タイムアウトは
- 15. Windows PhoneでのRIAサービス
- 16. Silverlight 4 RIAサービスの問題
- 17. Silverlight Wcf Riaサービスviewmodel combobox
- 18. Silverlight 4 WCF Riaサービスのポーリングパターン
- 19. Silverlight RIAサービス、プリズムのモジュール化と移動サービス
- 20. RIAサービス(ドメインサービス)をSOAP Webサービスとして公開する
- 21. 紛失したRIAサービスのデバッグ
- 22. Silverlight 4 - DataForm(AutoGeneratingField)のRIAサービスDataFieldヘッダー
- 23. 同期要求を伴うSilverlight RIAサービス
- 24. moqでのriaサービス認証のテスト
- 25. RIAサービスの代わりに動的?
- 26. RIAサービスを使用したDomainContextのバッチクエリ
- 27. Silverlight - RIA Servicesデータ/サービスの問題
- 28. WCF RIAサービス、ドメインサービスのテーブルへの参加
- 29. WCF RIAサービスでIPを取得
- 30. wcf riaサービス数のSilverlightへの制限
私は同じ質問をしています...まだ何かを見つけましたか? – sebagomez