国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

NopCommerce架構(gòu)分析之(四)基于路由實(shí)現(xiàn)靈活的插件機(jī)制

2024-07-10 12:47:25
字體:
供稿:網(wǎng)友

NopCommerce支持靈活的插件機(jī)制,所謂Web系統(tǒng)插件,其實(shí)也就是可以像原系統(tǒng)的一部分一樣使用。

Web系統(tǒng)的使用方式就是客戶端發(fā)送一個(gè)請(qǐng)求,服務(wù)端進(jìn)行解析。在asp.net MVC中對(duì)客戶請(qǐng)求的解析是通過路由的方式實(shí)現(xiàn)的。

所謂路由就是在客戶端發(fā)生請(qǐng)求時(shí),對(duì)請(qǐng)求路徑的解析過程。

在Global.asax.cs中注冊(cè)所有路由類:

//register custom routes (plugins, etc) var routePublisher = EngineContext.Current.Resolve<IRoutePublisher>(); routePublisher.RegisterRoutes(routes); 

IRoutePublisher:路由發(fā)布者,以主動(dòng)的方式向系統(tǒng)添加路由。實(shí)體類為:RoutePublisher。

IRouteProvider:路由提供者,每個(gè)插件都有一個(gè)路由提供者,向系統(tǒng)中注冊(cè)路由。

路由發(fā)布者(IRoutePublisher)通過IOC在運(yùn)行環(huán)境路徑中查找路由提供者,即查找所有繼承IRouteProvider的類。然后有各插件的路由提供者向系統(tǒng)中注冊(cè)此插件的路由。

PluginManager:插件管理器,負(fù)責(zé)加載插件的DLL,并保存所有插件信息。此管理器在系統(tǒng)初始化時(shí)開始啟動(dòng)并通過Initialize方法加載所有插件。

IPluginFinder:插件查找者,在使用時(shí)從插件管理器中查找插件。

每一個(gè)插件都擁有自描述文件:Description.txt; 類PluginDescriptor負(fù)責(zé)保存解析后的插件描述或者說是此描述文件的解析后實(shí)體類。

每個(gè)插件都集成IPlugin接口,插件擁有安裝和卸載的功能。

~/App_Data/InstalledPlugins.txt:保存所有加載或安裝了的插件。
~/Plugins:安裝的插件所在目錄。
~/Plugins/bin:每一個(gè)插件都會(huì)在此處建立一個(gè)備份。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 随州市| 普安县| 尖扎县| 嘉祥县| 黔南| 永吉县| 呼图壁县| 遵义县| 抚顺市| 黔西| 大港区| 湖北省| 洛浦县| 策勒县| 临清市| 新竹市| 莫力| 天全县| 长治县| 灵台县| 资阳市| 龙江县| 蓝田县| 横峰县| 库车县| 古交市| 宜阳县| 浮山县| 分宜县| 绥德县| 花莲市| 莫力| 宁强县| 衡南县| 岳阳市| 大同市| 长兴县| 龙里县| 青冈县| 施甸县| 景洪市|