Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF-FaultContract与响应数据契约_.net_Wcf - Fatal编程技术网

.net WCF-FaultContract与响应数据契约

.net WCF-FaultContract与响应数据契约,.net,wcf,.net,Wcf,在为WCF服务选择返回参数时,我有些困惑。该服务基本上是帐户注册服务,其中消费者(也包括传统消费者!)需要传递用户详细信息。该服务将验证用户详细信息,如姓名、地址、ssn验证等。如果所有验证都通过,我需要通过true else false以及错误代码列表和相应的错误消息 为此,目前我定义了一个数据契约类响应,如下所示 [DataContract] public class Response { [DataMember] public bool

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

为此,目前我定义了一个数据契约类响应,如下所示

[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;
        }
    }
[DataContract]
公众课堂反应
{
[数据成员]
公共布尔结果
{
得到;
设置
}
[数据成员]
公共IList错误列表
{
得到;
设置
}
}
[数据合同]
公共类错误
{
[数据成员]
公共整数码
{
得到;
设置
}
[数据成员]
公共字符串描述
{
得到;
设置
}
}
我的疑问是: 我在读下面的帖子,

它说我们需要返回FaultContract来返回这些类型的错误/验证消息。我知道FaultContract是为向用户发送异常以实现互操作性而设计的。如果是这种情况,我同意如果存在一些未处理的异常,我们需要发送FaultContract,例如:如果Web服务器和DB服务器之间的通信失败,等等

请就此向我提供建议…在这些情况下,我是否需要发送FaultContracts或类似上述响应对象

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

提前谢谢

问候,,
Bala

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

您应该将Response object作为应答发送回,并且在您的操作约定中,您可以指定可以抛出哪种类型的故障约定。通过发送故障契约,即使它是一个例外,通道也不会出现故障,您仍然可以使用它;否则,通道可能出现故障,您无法再使用它。

您可以同时返回故障异常和业务对象。您可以同时返回故障异常和业务对象。