亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WCF緩存機制怎么理解

發布時間:2021-12-14 18:01:54 來源:億速云 閱讀:209 作者:iii 欄目:編程語言

這篇文章主要講解了“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緩存機制怎么理解這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

wcf
AI

德钦县| 汤阴县| 云梦县| 博白县| 崇明县| 大姚县| 嵩明县| 长岭县| 南投县| 芷江| 石嘴山市| 闽侯县| 汤原县| 湾仔区| 宜川县| 江山市| 聊城市| 富川| 十堰市| 新绛县| 准格尔旗| 天柱县| 秦皇岛市| 额尔古纳市| 铜梁县| 那坡县| 策勒县| 安福县| 泾阳县| 镇原县| 孙吴县| 团风县| 周至县| 达尔| 太谷县| 长汀县| 滕州市| 封丘县| 凤冈县| 罗田县| 西乌珠穆沁旗|