在研究Nopcommece項目代碼的時候,發現Nop.Admin是作為獨立項目開發的,但是部署的時候卻是合在一起的,感覺挺好
這裡把他這個部分單獨抽離出來,
主要關鍵點:
這裡新建了一個AdminAreaRegistration來專門負責WebAdmin相關路由的注冊,好處是每個插件負責自己的事情,相互不影響,
但是這個RegisterArea什麼時候執行呢,就是主網站項目調用 AreaRegistration.RegisterAllAreas();的時候,
那麼AreaRegistration.RegisterAllAreas()主要干了什麼?
ASP.NET MVC會遍歷通過調用BuildManager的靜態方法GetReferencedAssemblies得到的程序集列表,並從中找到所有AreaRegistration類型,
然後調用每個AreaRegistration類型的RegisterArea方法
注意 之所以說這是一個比較簡單的方式,是因為 這個例子只是把插件項目的DLL簡單的輸出到主項目的Bin目錄,
插件得DLL就已經可以被成功的添加到GetReferencedAssemblies列表裡,
如果就想每個插件都有自己的目錄那麼可能需要你手動的通過BuildManager在APPStart前把每個插件DLL加入到GetReferencedAssemblies列表裡,
代碼下載: https://github.com/xlb378917466/SimplePlugin_asp.netmvc5.git