作為一個NEO區塊鏈技術愛好者,經常要擺弄NEOGUI,而NEOGUI在眾多開發者手中有了眾多的分支實現,我也有自己的分支改版。這是一件很麻煩的事情。
雖然NEO-GUI定位為一個演示客戶端與開發工具,不過使用他的開發者還是很多的,大家都要對NEO-GUI進行各式各樣的修改。
那麼為什麼不增加一個外掛機制呢,說幹就幹。
先貼地址,此分支版本的原始碼在
https://github.com/lightszero…
為neo neovm neogui 三合一,隨時和NEO倉庫保持同步。
先增加一個外掛模組,裡面有兩個介面,一個IAPI,提供客戶端暴露給外掛使用的介面
NEOGUI 繼承此介面。另一個是IPLUGIN,外掛實現此介面。
然後在NEO-GUI啟動時,動態尋找外掛的dll,用反射方法找出其中的外掛型別,並建立例項。
最後在NEO-GUI動態增加選單,按下選單時呼叫對應的外掛。
這個外掛機制就完成了。
我們先來看一下效果
剛加上外掛機制,和普通客戶端並無不同,那個good請無視掉,本來應該安置一個外掛管理器什麼的。
在執行程式的目錄
建立一個資料夾
把外掛copy進去,重啟gui即可生效。
我們先copy 一個 sample_plugin
效果如下,為這個外掛增加了一個選單項
功能是簡單的彈出了一個對話方塊
這個外掛的原始碼非常簡潔
我們再安裝另一個外掛,他有一個實際的功能,
可以查詢storage儲存區裡面的內容
對neogui原始碼的侵入性也很小
目前只修改了這麼多NeoGUI的原始碼。
作者:李劍英