我对为我的WCF服务选择返回参数有一些困惑。该服务基本上是帐户注册服务,其中的消费者(也包括遗留消费者!)需要传递用户详细信息。该服务将验证用户的详细信息,如姓名,地址,ssn验证等。如果所有的验证通过,我需要传递真或假的错误代码和相应的错误消息列表。
为此,目前我定义了一个数据契约类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,例如:如果we服务器和DB服务器之间的通信失败,等等。
请告诉我在这些场景下需要发送FaultContracts或类似上面的响应对象的this...Do?
我觉得返回Response object是正确的,因为这些都是业务验证,而不是exception...pls。如果我错了,请纠正我。
提前感谢!
问候你,巴拉
发布于 2011-07-28 16:52:45
您应该将Response object作为回复发送回去,并且在您的操作约定上,您可以指定可以抛出哪种类型的错误约定。通过发送故障契约,即使是异常,通道也不会出现故障,仍然可以使用;否则,通道可能会出现故障,不能再使用。
https://stackoverflow.com/questions/6854846
复制相似问题