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