在Fail上从Service方法返回什么类型

时间:2012-02-13 04:47:39

标签: c# wcf web-services

如果我向使用我的网络服务的客户创建WCF服务,我有时会辩论要回复什么。通常我会返回自定义DTO,在DTO中我有一个名为Success(bool)的属性,还有一些属性字符串表示错误,如果Success为false,则可以检查这些属性。

但客户端必须知道(紧密耦合)有关该DTO类型才能进行方法调用,因为它返回x类型的DTO。

我知道我确实想要返回一个对象...因为我希望包含标志成功,并且如果失败也总是提供信息。但那么我应该返回某种类型的接口吗?

如果您希望您的服务能够被任何.net客户端应用程序使用,我不太确定最好返回什么。

2 个答案:

答案 0 :(得分:1)

如果客户端也是.NET应用程序,我可能只是抛出异常。

答案 1 :(得分:1)

如果您的服务器端错误类型需要调用者处理,那么您应该将错误包装在SOAP错误消息中。

这是将错误信息传递回调用方的标准和预期方法。

传递成功/失败标志是一种反模式,因为您迫使消费者询问响应对象以了解是否存在故障。

在WCF中,如果在服务操作中抛出异常,则WCF将自动为您创建SOAP错误包装器。这为您提供了一种可互操作的方式,可以将异常详细信息传递给您的呼叫者。