我有一个WCF服务和一个FaultContract。我在FaultContract里有一个理由,所以我有这样的事情。
FltInfo.Reason = "This is a test";
throw new FaultException<FaultInfo>(FltInfo, new FaultReason(FltInfo.Reason));显然,我已经为我的数据契约定义了FaultInfo类。但是,如果我想获得类似于故障代码、细节或级别(关键度类型)的方面,我需要做什么或者如何做呢?
如果我没有包括其中一些,我还会得到一个soap错误消息吗?
另外,在发送/接收方面触发尝试捕获的错误异常(或者您有什么)不是会终止通信吗?这意味着,如果我有1条消息通过接收,而该1条消息有一个列表,比如100项(例如一个数组),如果我通过100的数组进行处理,我就可以说是第30条,但是它会触发错误。我会不会失去一切(全部100),因为一个回应从来没有做过,只是一个错误?
谢谢
发布于 2013-10-25 01:34:28
您可以使用故障异常的各种构造函数添加故障代码。是的,如果您将它们保留为空白,您将得到WCF默认值。另外,如果您在处理列表中的单个项时抛出故障异常,您将脱离正常路径,只返回错误。
您可以通过在部分故障中包含响应类型以及如何将单个部分标记为无效来修改这一点。或者,您的服务可以有一个包装响应类型,允许您将返回的数据的特定部分标记为无效,因为在解决方案中这样做是无效的。
https://stackoverflow.com/questions/19579130
复制相似问题