我的问题是关于 WCF 服务中的错误处理并将错误信息传递回调用客户端。我知道我们可以在定义接口时将 FaultContract 用作 ServiceContract 的一部分。如果我不想使用 FaultContract 并且作为我的 DataContract 响应的一部分,我将错误响应或成功响应作为 Result 类型的对象包含在内怎么办?
这两种方法有什么区别?特别是在内部使用了任何额外的渠道?
我已经尝试了这两种方法并且都有效。到目前为止我所知道的是方法 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; }
}