2011-06-28 67 views
0

我正在用C#编写OData webservice,我需要一些关于如何处理无效请求的建议?如果客户在他们不再拥有的物品上请求服务,则会出现一个错误示例。我希望能够确切地向顾客报告为什么它是无效的,因为有多种可能的原因。OData中的无效请求处理

非常感谢

回答

1

我会推荐使用FaultContracts作为OperationContract的一部分。您可以像DataContracts一样定义它们,并像处理自定义异常一样处理异常。

[OperationContract] 
[FaultContract(typeof(ItemNotOwned))] 
Item GetItem(int ItemId); 

您将ItemNotOwned定义为单独的合同定义。

检查出来的MSDN:http://msdn.microsoft.com/en-us/library/ms733841.aspx#Y323

+0

看起来像它只是为SOAP。我使用REST –

+0

哦,是的,错误只是SOAP。如果您使用HttpClient进行REST,那么正常的异常将被序列化。不过,你需要在电线的另一端放松它们。 –

1

只是抛出一个异常,并包含该信息的消息。该异常将被序列化为发送给客户端的响应。如果您不关心响应状态代码,则会发生任何异常并且客户端将收到500(内部服务器错误)。如果你想要一个特定的状态码,抛出一个DataServiceException的实例。