2011-07-28 7 views
1

私のWCFサービスのリターンパラメータを選択する際にいくつかの混乱があります。サービスは、基本的に、消費者(従来の消費者も!)がユーザーの詳細情報を渡す必要があるアカウント登録サービスです。サービスは、名前、アドレス、ssn検証などのユーザーの詳細を検証します。すべての検証に合格した場合は、エラーコードと対応するエラーメッセージのリストと共にtrueをelseに渡す必要があります。このためWCF - FaultContractとレスポンスデータコントラクト

、現在私が疑問

[DataContract] 
    public class Response 
    { 


     [DataMember] 
     public bool Result 
     { 
      get;   
      set; 

     } 

     [DataMember] 
     public IList<Error> ErrorList 
     { 
      get;   
      set; 
     } 
    } 


    [DataContract] 
    public class Error 
    { 

     [DataMember] 
     public int Code 
     { 
      get;   
      set; 
     } 
     [DataMember] 
     public string Description 
     { 
      get;   
      set; 
     } 
    } 

、以下のようなデータコントラクトクラスの応答を定義している: 私は次のスレッド、 WCF - Faults/Exceptions versus Messages

を読んでいたことは、私たちが返す必要があると述べていますこれらのタイプのエラー/検証メッセージを返すためのFaultContract。 FaultContractは、相互運用性のためにコンシューマに例外を送信するために設計されていることを理解しました。この場合、私はFaultContractを送信する必要があることに同意します。たとえば、WebサーバとDBサーバなどの間で通信が失敗した場合など、未処理の例外があるとします。

私はこのことについて助言してください... FaultContractsを送信するか、これらのシナリオで上記のResponseオブジェクトを好きですか?

私は応答を返すと感じているこれらはすべて例外ではないビジネスの検証であるため、正しいです... plsは私が間違っている場合私を修正します。

ありがとうございます!

よろしく、 バラ

+0

障害例外とビジネスオブジェクトを一緒に返すことができます。 – vorrtex

答えて

1

あなたは戻って応答としてResponseオブジェクトを送信する必要がありますし、あなたの運転の契約に、あなたがスローされる可能性が、故障契約の種類を指定することができます。フォルト契約を送信することによって、たとえそれが例外であっても、チャネルはフォールトされず、引き続き使用することができます。そうしないと、チャネルにフォルトが発生し、それ以上使用できなくなります。