WCF - FaultContract与响应数据合同

时间:2011-07-28 06:24:08

标签: .net wcf

我对选择WCF服务的返回参数有些困惑。该服务基本上是帐户注册服务,其中消费者(传统消费者也需要)传递用户详细信息。该服务将验证用户详细信息,如名称,地址,ssn验证等。如果所有验证都通过,我需要传递true,否则返回错误代码列表和相应的错误消息。

为此,目前我已经定义了一个数据合约类Response,如下所示,

[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,例如:如果webserver和DB服务器之间的通信失败等。

请告诉我这个......我是否需要在这些场景中发送FaultContracts或类似上面的Response对象?

我觉得返回Response对象是正确的,因为这些都是一些业务验证,这不是一个例外......请纠正我,如果我错了。

提前致谢!

此致 巴拉

1 个答案:

答案 0 :(得分:1)

您应该将Response对象作为回复发送回来,并且在您的操作合同上,您可以指定可以抛出哪种类型的错误合同。通过发送错误合同,即使它是一个例外,通道也不会出现故障,你仍然可以使用它;否则,频道可能出现故障,您无法再使用它。