Служба WCF, измените HttpStatusCode в зависимости от возвращаемого значения - PullRequest
1 голос
/ 07 июля 2011

У меня есть служба WCF, которая предоставляет две конечные точки. Один с WebHttpBinding (действует как служба REST для мобильных клиентов) и один с NetTcpBinding (используется для настольных .NET-клиентов)

Допустим, клиент обращается к методу сервиса GetData. Если данных нет, я верну «ноль» (или false или «0» в зависимости от того, что было вызвано). Если клиент является мобильным клиентом, имеющим доступ к WebHttpBinding -конечной точке, я хотел бы изменить HttpStatusCode на что-то отличное от OK.

Есть ли способ сделать это и сохранить общую реализацию моей службы (не размещая там никакого кода, специфичного для http)? Я знаю, что могу использовать IDispatchMessageInspector, чтобы перехватить сообщение и изменить код состояния, и сделать это только для WebHttpBinding -конечной точки, но тогда я бы не знал, что изменить код состояния на ...

Есть ли кто-нибудь, у кого есть предложение относительно того, как я могу решить эту проблему?

Обновление:

Я начинаю думать, что действительно нет никакого способа сделать это хорошим способом, так как единственное место, где я действительно действительно знаю, что, когда неправильно, находится в реализации сервиса.

1 Ответ

1 голос
/ 07 июля 2011

Редактировать: хороший способ: Разделение проблем (SoC).Реализация REST только добавляет проблемы REST к сервису и наследует базовую реализацию, которая выполняет всю бизнес-логику.

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