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. WCFデータサービスとWCF RIAサービス
- 3. Silverlight 3 - RIAサービスとLINQ
- 4. Riaサービスとナビゲーションプロパティの問題
- 5. RIAサービスとEF検証
- 6. WCF RIAサービス
- 7. RIAサービス変更トラッキング
- 8. .NET RIAサービスとは何ですか?
- 9. Silverlight 4、RIA認証サービスとロール
- 10. WCF Riaサービスと巡回の参照
- 11. Windows Workflow、WCF RiaサービスとSilverlightの例
- 12. Silverlight 4 Riaサービスと複数のスレッド
- 13. カスタムODataサービス(WCF RIAサービスなし)+ MVVM
- 14. Silverlight 4 RIAサービスの問題
- 15. Silverlight 4 WCF Riaサービスのポーリングパターン
- 16. Silverlight Wcf Riaサービスviewmodel combobox
- 17. Windows PhoneでのRIAサービス
- 18. WCF RIAサービスSP1タイムアウトは
- 19. RIAサービス(ドメインサービス)をSOAP Webサービスとして公開する
- 20. Silverlight RIAサービス、プリズムのモジュール化と移動サービス
- 21. WCF RIAサービスでIPを取得
- 22. RIAサービスを使用したDomainContextのバッチクエリ
- 23. wcf riaサービス数のSilverlightへの制限
- 24. 同期要求を伴うSilverlight RIAサービス
- 25. Silverlight 4 - DataForm(AutoGeneratingField)のRIAサービスDataFieldヘッダー
- 26. Silverlight - RIA Servicesデータ/サービスの問題
- 27. RIAサービスの代わりに動的?
- 28. 紛失したRIAサービスのデバッグ
- 29. WCF RIAサービス、ドメインサービスのテーブルへの参加
- 30. moqでのriaサービス認証のテスト
私は同じ質問をしています...まだ何かを見つけましたか? – sebagomez