У меня есть служба WCF, которая предоставляет две конечные точки. Один с WebHttpBinding
(действует как служба REST для мобильных клиентов) и один с NetTcpBinding
(используется для настольных .NET-клиентов)
Допустим, клиент обращается к методу сервиса GetData
. Если данных нет, я верну «ноль» (или false
или «0» в зависимости от того, что было вызвано). Если клиент является мобильным клиентом, имеющим доступ к WebHttpBinding
-конечной точке, я хотел бы изменить HttpStatusCode
на что-то отличное от OK.
Есть ли способ сделать это и сохранить общую реализацию моей службы (не размещая там никакого кода, специфичного для http)? Я знаю, что могу использовать IDispatchMessageInspector
, чтобы перехватить сообщение и изменить код состояния, и сделать это только для WebHttpBinding
-конечной точки, но тогда я бы не знал, что изменить код состояния на ...
Есть ли кто-нибудь, у кого есть предложение относительно того, как я могу решить эту проблему?
Обновление:
Я начинаю думать, что действительно нет никакого способа сделать это хорошим способом, так как единственное место, где я действительно действительно знаю, что, когда неправильно, находится в реализации сервиса.