0

私の質問は、WCF サービスでのエラー処理と、呼び出し元のクライアントにエラー情報を渡すことに関するものです。インターフェイスを定義する際に、FaultContract を ServiceContract の一部として使用できることは知っています。FaultContract を使用したくなく、DataContract 応答の一部としてエラー応答または成功応答を Result 型のオブジェクトとして含める場合はどうすればよいですか?

2つのアプローチの違いは何ですか? 特に、内部的に使用されている余分なチャンネルはありますか?

私は両方のアプローチを試しましたが、両方ともうまくいきました。私がこれまでに知っていることは、アプローチ 2 では、トラップするエラーをクライアントが知る必要がないということです。クライアントは Result オブジェクトを調査するだけで確認できます。

FaultContract コードの例

public interface ICalculator
{
    [OperationContract]
    [FaultContract(typeof(MathFault))]
    int Divide(int n1, int n2);
}

私のエラー処理コード

public interface ICalculator
{
    [OperationContract]
    Result Divide(int n1, int n2);
}

[DataContract]
public class Result 
{
    [DataMember]
    public bool Success { get; set; }
    [DataMember]
    public string ErrorNumber { get; set; }
    [DataMember]
    public string ErrorMessage { get; set; }
 }
4

0 に答える 0