我可以在WCF中继承FaultException以抛出自定义错误吗?

时间:2013-05-29 08:37:52

标签: wcf exception exception-handling fault

奇怪的是我在谷歌上找不到任何东西。在做常规异常时,你会创建一个MyCustomException : Exception,我认为同样适用于ExceptionFaults。

当有人使用无效的api密钥调用我的服务时,我想抛出一个InvalidApiKeyExceptionFault。我似乎无法在网上找到如何设置它并让客户端能够捕获它的示例(可能是某个地方将其包含在WSDL中)。

有什么建议在哪里看,或者我在尝试一些不可能的事情?

1 个答案:

答案 0 :(得分:5)

您应该使用FaultException<TDetail>并将您的特定信息放入可序列化的TDetail类型中。

您的服务合同应fault contract指定TDetail类型。

此技术使您能够以可互操作的方式传达错误信息,包括对不了解.NET异常的客户端。

如果由于某种原因您不想使用故障合同,则可以考虑使用非通用FaultException,并在故障原因和/或故障代码/子代码中传达有关错误的其他信息。