91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

建平县| 共和县| 深泽县| 神农架林区| 屏南县| 石林| 读书| 华池县| 修武县| 通州区| 马尔康县| 马鞍山市| 娄烦县| 三明市| 水富县| 安国市| 兰溪市| 邻水| 韩城市| 扬中市| 曲水县| 清涧县| 苗栗县| 伊金霍洛旗| 武宁县| 尉氏县| 怀化市| 鹤山市| 分宜县| 晋江市| 车致| 镇巴县| 秭归县| 额济纳旗| 文化| 壤塘县| 宜阳县| 行唐县| 西华县| 松原市| 子洲县|