我有一个公开两个端点的WCF服务。一个WebHttpBinding
(充当移动客户端的REST服务)和一个NetTcpBinding
(用于桌面.NET客户端)
假设客户端访问服务方法GetData
。如果没有数据,我将返回'null'(或false
或'0',具体取决于所调用的内容)。如果客户端是访问WebHttpBinding
- 端点的移动客户端,我想将HttpStatusCode
更改为OK以外的其他内容。
有没有办法做到这一点,仍然保持我的服务实现一般(不在那里放任何特定于http的代码)?我知道我可以使用IDispatchMessageInspector
拦截消息并更改状态代码,并且仅对WebHttpBinding
- 端点执行此操作,但后来我真的不知道要将状态代码更改为...
有没有人建议如何解决这个问题?
更新
我开始认为真的没有办法以一种很好的方式做到这一点,因为我真正知道在服务实现中出错的唯一地方。
答案 0 :(得分:1)
编辑:好方法:关注点分离(SoC)。 REST实现仅将REST问题添加到服务中,并继承执行整个业务逻辑的基本实现。