Неправильная обработка запроса в OData - PullRequest
0 голосов
/ 28 июня 2011

Я пишу веб-сервис OData с C #, и мне нужен совет, как обрабатывать недопустимые запросы?Примером ошибки может быть, если клиент запросил услугу на предмет, которым он больше не владеет.В идеале я хотел бы сообщить клиенту, почему он недействителен, поскольку существует множество возможных причин.

Большое спасибо

Ответы [ 3 ]

1 голос
/ 28 июня 2011

Просто сгенерируйте исключение с сообщением, содержащим эту информацию. Исключение будет сериализовано в ответ, отправленный клиенту. Если вас не заботит код состояния ответа, подойдет любое исключение, и клиент получит 500 (Внутренняя ошибка сервера). Если вам нужен конкретный код состояния, создайте экземпляр DataServiceException.

1 голос
/ 28 июня 2011

Я бы рекомендовал использовать FaultContracts как часть OperationContract.Вы можете определить их так же, как DataContracts, и обрабатывать исключения так же, как пользовательское исключение.

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

Вы можете определить ItemNotOwned как отдельное определение контракта.

Проверьте это в MSDN: http://msdn.microsoft.com/en-us/library/ms733841.aspx#Y323

0 голосов
/ 20 сентября 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...