我对选择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对象是正确的,因为这些都是一些业务验证,这不是一个例外......请纠正我,如果我错了。
提前致谢!
此致 巴拉
答案 0 :(得分:1)
您应该将Response对象作为回复发送回来,并且在您的操作合同上,您可以指定可以抛出哪种类型的错误合同。通过发送错误合同,即使它是一个例外,通道也不会出现故障,你仍然可以使用它;否则,频道可能出现故障,您无法再使用它。