為NEO-GUI 新增外掛系統

NEOxizai發表於2019-01-19

作者:李劍英

原文連結:www.cnblogs.com/crazylights…

作為一個NEO區塊鏈技術愛好者,經常要擺弄NEOGUI,而NEOGUI在眾多開發者手中有了眾多的分支實現,我也有自己的分支改版。這是一件很麻煩的事情。

雖然NEO-GUI定位為一個演示客戶端與開發工具,不過使用他的開發者還是很多的,大家都要對NEO-GUI進行各式各樣的修改。

那麼為什麼不增加一個外掛機制呢,說幹就幹。

先貼地址,此分支版本的原始碼在

github.com/lightszero/…

為neo neovm neogui 三合一,隨時和NEO倉庫保持同步。

先增加一個外掛模組,裡面有兩個介面,一個IAPI,提供客戶端暴露給外掛使用的介面

NEOGUI 繼承此介面。另一個是IPLUGIN,外掛實現此介面。

然後在NEO-GUI啟動時,動態尋找外掛的dll,用反射方法找出其中的外掛型別,並建立例項。

最後在NEO-GUI動態增加選單,按下選單時呼叫對應的外掛。

這個外掛機制就完成了。

我們先來看一下效果

剛加上外掛機制,和普通客戶端並無不同,那個good請無視掉,本來應該安置一個外掛管理器什麼的。

在執行程式的目錄

建立一個資料夾

把外掛copy進去,重啟gui即可生效。

我們先copy 一個 sample_plugin

效果如下,為這個外掛增加了一個選單項

功能是簡單的彈出了一個對話方塊

這個外掛的原始碼非常簡潔

我們再安裝另一個外掛,他有一個實際的功能,可以查詢storage儲存區裡面的內容

對neogui原始碼的侵入性也很小

目前只修改了這麼多NeoGUI的原始碼。


相關文章