WCF - 如何向每个呼叫添加额外数据
答
通常情况下,做这样的事情的最好方法是在WCF头中传递这样的“元信息”。您可以轻松地创建一个消息检查器来扩展WCF(它实际上并不那么可怕,也很难做到!),它会将POCO类(或其中必需的)注入客户端的每个传出请求中,并从头中检索它并在服务器端进行验证。
有一些相当不错的博客文章在那里的向您展示如何创建一个消息检查:
- 理查德Hallgren的WCF postings
- Writing a WCF message inspector
- Automatic Culture Flowing with WCF by using Custom Behaviour
时退房两个相关的接口来实现:
- 在客户端,其中有一个
BeforeSendRequest
和AfterReceiveReply
消息在服务器端,其中有一个AfterReceiveRequest
和BeforeSendReply
方法实现 - IDispatchMessageInspectorIClientMessageInspector实施
+0
对于复杂的数据类型来说还不够!我已经知道如何,只需要写下它并将它放在这里。 – 2011-04-19 07:36:33
你能不能给更多细节 ? – Liran 2011-03-26 17:21:14
我有一个名为“ExecutionContext”的类,其中包含有关正在运行的上下文的数据,我想将它传递给每个请求上的无状态服务器。我知道有关标题选项,但我记得它不支持复杂的类型,你必须手动序列化的东西。 – 2011-03-29 08:17:56