千家信息网

WCF缓存机制怎么理解

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"WCF缓存机制怎么理解",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF缓存机制怎么理解"吧!缓存是很占内存的,缓存也有它的好处
千家信息网最后更新 2026年11月02日WCF缓存机制怎么理解

这篇文章主要讲解了"WCF缓存机制怎么理解",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"WCF缓存机制怎么理解"吧!

缓存是很占内存的,缓存也有它的好处,这里就WCF缓存机制分析一个案例,希望大家可以从中得到收获。首先我们看看MSDN中对WCF的Session的说明:它们由调用应用程序显式启动和终止。会话期间传递的消息按照接收消息的顺序进行处理。会话将一组消息相互关联,从而形成对话。该关联的含义是抽象的。

例如,一个基于会话的通道可能会根据共享网络连接来关联消息,而另一个基于会话的通道可能会根据消息正文中的共享标记来关联消息。可以从会话派生的功能取决于关联的性质。不存在与 WCF 会话相关联的常规数据存储区。***一句告诉我们,WCF中的Session是无法像Web应用一样存储附加信息的。经过研究,我们可以通过扩展MessageHeader实现一个附加的数据存储区在Client端每次请求Service时发送到Server端。具体实现如下(以前述需求为例)。

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

UserPermissionInfo.GetInstance().SetUserIdentity(ServerReturnedUserIdentity);

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

usingSystem;  usingSystem.Collections.Generic;  usingSystem.Text;  usingSystem.ServiceModel;  usingSystem.ServiceProcess;  usingSystem.ServiceModel.Dispatcher;  usingSystem.ServiceModel.Description;  usingSystem.ServiceModel.Channels;  usingSystem.ServiceModel.Configuration;  namespaceBNCommon.ClientHelper  {  publicclassBNClientMessageInspector:IClientMessageInspector  {  IClientMessageInspector成员#regionIClientMessageInspector成员  publicvoidAfterReceiveReply(refMessagereply,objectcorrelationState)  {  }  publicobjectBeforeSendRequest(refMessagerequest,IClientChannelchannel)  {  MessageHeaderMessageHeadermh=MessageHeader.CreateHeader("UserIdentity","UINS",BNIIClientLayerPlus.UserPermissionInfo.GetInstance()._UserIdentity);  request.Headers.Add(mh);  returnnull;  }  #endregion  }  }


这个类实现了IClientMessageInspector接口,实现该接口可以在Client每次向Server请求前及请求返回后控制Client的行为对发送和接收的数据进行处理。现在我们需要实现BehaviorExtensionElement,IEndpointBehavior将刚刚建立的行为加入Client行为集合,代码如下:

usingSystem;  usingSystem.Collections.Generic;  usingSystem.Text;  usingSystem.ServiceModel;  usingSystem.ServiceProcess;  usingSystem.ServiceModel.Dispatcher;  usingSystem.ServiceModel.Description;  usingSystem.ServiceModel.Channels;  usingSystem.ServiceModel.Configuration;  namespaceBNCommon.ClientHelper  {  publicclassBNClientEndpointBehavior:BehaviorExtensionElement,IEndpointBehavior  {  IEndpointBehavior成员#regionIEndpointBehavior成员  publicvoidAddBindingParameters(ServiceEndpointendpoint,BindingParameterCollectionbindingParameters)  {}  publicvoidApplyClientBehavior(ServiceEndpointendpoint,ClientRuntimeclientRuntime)  {  clientRuntime.MessageInspectors.Add(newBNClientMessageInspector());  }  publicvoidApplyDispatchBehavior(ServiceEndpointendpoint,EndpointDispatcherendpointDispatcher)  {  }  publicvoidValidate(ServiceEndpointendpoint)  {  return;  }  #endregion  publicoverrideTypeBehaviorType  {  get...{returntypeof(BNClientEndpointBehavior);}  }  protectedoverrideobjectCreateBehavior()  {  returnnewBNClientEndpointBehavior();  }  }  }

感谢各位的阅读,以上就是"WCF缓存机制怎么理解"的内容了,经过本文的学习后,相信大家对WCF缓存机制怎么理解这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

缓存 消息 关联 机制 成员 代码 数据 行为 存储 学习 内容 可以通过 就是 接口 通道 处理 应用 研究 附加 从中 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 金诺互联网科技 互联网 卓越科技 掌上梦互联网科技 互联网 新科技 承德科技产业互联网发展 成都铂石互联网科技做什么的 互联网还是高科技吗 湖北码尼互联网科技有限公司电话 移动互联网科技公司 苏州铭阳互联网科技有限公司 高科技互联网发展前景如何 科技赋能视角下互联网保险发展 互联网公司高科技产品 半导体是互联网高科技吗 风投北京互联网科技 陕西云淼互联网科技公司 盐城市攀科互联网科技有限公司 杭州科技互联网公司有哪些 河南商务圈互联网科技有限公司 互联网金融科技 互联网科技海报 互联网科技工作委员会主任 今日互联网科技 互联网巨头反垄断金融科技 互联网金融 科技金融 受益于互联网科技的高速发展 港股科技和互联网 南通创西澳互联网科技有限公司 西安左小互联网科技有限公司
0