国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[C#]服務(wù)器實(shí)現(xiàn)函數(shù)熱更新

2023-06-13 19:28 作者:HarrickHeng  | 我要投稿

一、熱更新技術(shù)概述

熱更新在不停機(jī)的情況下,對(duì)問(wèn)題進(jìn)行緊急修復(fù),可以有效避免用戶(hù)流失,是一種快捷、低成本的更新方法,是應(yīng)用程序的用戶(hù)體驗(yàn)和競(jìng)爭(zhēng)力。這里的實(shí)現(xiàn)方式主要是通過(guò)動(dòng)態(tài)鏈接庫(kù)(DLL)的重載,具體實(shí)現(xiàn)則是通過(guò)修改XML配置指向新的DLL文件,網(wǎng)頁(yè)以傳指令參數(shù)執(zhí)行更新函數(shù)。

二、實(shí)現(xiàn)前提

項(xiàng)目需要模塊化設(shè)計(jì),將每個(gè)模塊都打包成獨(dú)立的DLL文件,從而實(shí)現(xiàn)對(duì)特定模塊的熱更新。那本人dot-net服務(wù)器項(xiàng)目舉例,會(huì)將業(yè)務(wù)邏輯抽離出來(lái),單獨(dú)開(kāi)一個(gè)HHServer.HotFix項(xiàng)目。項(xiàng)目下分別有Logic文件夾(處理業(yè)務(wù)邏輯)、Managers文件夾(接口工具等管理類(lèi))、ProtoHandler文件夾(網(wǎng)絡(luò)協(xié)議Handler)等其他Handler分類(lèi)文件夾。涉及需要熱更新的業(yè)務(wù)邏輯都應(yīng)該在此項(xiàng)目里處理。

三、腳本介紹

HandlerAttribute.cs

用于熱更類(lèi)的頭標(biāo)記,詳細(xì)可參考C# 特性(Attribute):

熱更類(lèi)需要繼承自己方法名集合的接口,以上個(gè)熱更類(lèi)舉例:


HotFixConfig.cs

熱更配置通過(guò)項(xiàng)目編譯后的Configs文件夾下的HotFixConfig.xml作配置文件。


HotFixHelper.cs

其中Activator.CreateInstance為方法的核心,我們通過(guò)這個(gè)方法將Handler實(shí)例化,并調(diào)用接口約定的方法進(jìn)行使用。需要在其他項(xiàng)目模塊初始化時(shí)調(diào)用HotFixMgr.Load()方法。


四、熱更流程

  1. 只能熱更HotFix項(xiàng)目中添加了標(biāo)記的函數(shù),修改代碼后對(duì)項(xiàng)目進(jìn)行編譯,生成新的HHServer.HotFix.dll文件。

  2. 重命名HHServer.HotFix.dll文件,例如HHServer.HotFix01.dll,又或者生成自行在后綴添加時(shí)間戳。

  3. 修改Configs文件夾下的HotFixConfig.xml文件,將Value="HHServer.HotFix.dll"改為新的dll文件。

  4. 熱重載調(diào)用HotFixMgr.Load()方法。這里調(diào)用的方式是通過(guò)網(wǎng)頁(yè)參數(shù)傳入:

    ??

又或者在控制臺(tái)輸入操作:


[C#]服務(wù)器實(shí)現(xiàn)函數(shù)熱更新的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
石首市| 高邮市| 孙吴县| 呼和浩特市| 从化市| 安西县| 离岛区| 道真| 聂拉木县| 金沙县| 会东县| 德江县| 肇庆市| 竹溪县| 普洱| 正安县| 河津市| 乡宁县| 元氏县| 延边| 大英县| 长垣县| 炉霍县| 蓝山县| 宜兴市| 万载县| 建昌县| 台东市| 普宁市| 绥化市| 邹平县| 新平| 南阳市| 鄂温| 保康县| 云阳县| 承德市| 中方县| 南投县| 瑞昌市| 丹寨县|