理解WCF缓存代码编程技巧

开发 后端
这周开始对WCF缓存学习,首先碰到的就是环境的配置。以前学的Visual Studio2003,但并没有怎么用。所以有一个星期的时间基本是在用实践着.net 1.0,大大影响工作。

对于WCF缓存是很占内存的,但是我觉得它也有它的好处,现在我们先来看看微软官方对WCF的Session的说明:它们由调用应用程序显式启动和终止。欢迎大家进行参考学习。

会话期间传递的消息按照接收消息的顺序进行处理。会话将一组消息相互关联,从而形成对话。该关联的含义是抽象的。例如,一个基于会话的通道可能会根据共享网络连接来关联消息,而另一个基于会话的通道可能会根据消息正文中的共享标记来关联消息。可以从会话派生的功能取决于关联的性质。不存在与 WCF 会话相关联的常规数据存储区。#t#

最后一句告诉我们,WCF中的Session是无法像Web应用一样存储附加信息的。经过研究,我们可以通过扩展MessageHeader实现一个附加的数据存储区在Client端每次请求Service时发送到Server端。具体实现如下(以前述需求为例)。

这是一个单件类,Client正常登陆得到Server端回传的UserIdentity实例后可以通过如下代码将其存入WCF缓存

其中ServerReturnedUserIdentity就是Server产生并回传的UserIdentity下面我们扩展MessageHeader将我们自己定义的UserIdentity加入进去,WCF缓存代码如下:

  1. usingSystem;  usingSystem.Collections.Generic;  usingSystem.Text;  
  2. usingSystem.ServiceModel;  
  3. usingSystem.ServiceProcess;  
  4. usingSystem.ServiceModel.Dispatcher;  
  5. usingSystem.ServiceModel.Description;  
  6. usingSystem.ServiceModel.Channels;  
  7. usingSystem.ServiceModel.Configuration; 
  8.  namespaceBNCommon.ClientHelper  {  publicclassBNClientMessageInspector:
  9. IClientMessageInspector  {  IClientMessageInspector成员#regionIClientMessageInspector成员
  10.   publicvoidAfterReceiveReply(refMessagereply,objectcorrelationState)  {  }   
责任编辑:chenqingxiang 来源: 电子工业出版社
相关推荐

2009-12-07 17:13:23

WCF技术

2009-11-05 13:00:25

WCF客户端

2009-12-07 16:07:19

WCF编程

2009-11-09 17:55:13

WCF缓存

2021-06-10 11:05:04

Java编程代码

2010-02-24 12:49:39

WCF枚举

2010-02-23 09:44:12

WCF dataCon

2010-02-22 11:25:50

WCF DateSet

2012-02-14 10:18:11

WCF数据服务

2009-12-23 11:24:42

WCF附加属性

2010-02-22 17:58:06

WCF异步上传

2010-03-01 13:06:49

WCF继承

2009-12-21 14:10:26

WCF异步调用

2009-11-05 13:16:59

WCF代理

2010-02-22 16:26:47

WCF传输数据

2010-02-22 16:19:25

WCF自托管

2009-12-22 19:14:36

WCF效率

2009-12-15 13:39:43

2020-09-23 09:20:58

代码Java字符串

2010-02-22 17:21:02

WCF消息交换
点赞
收藏

51CTO技术栈公众号