做者:李劍英html
原文連接:http://www.cnblogs.com/crazylights/p/7923148.htmlgit
做爲一個NEO區塊鏈技術愛好者,常常要擺弄NEOGUI,而NEOGUI在衆多開發者手中有了衆多的分支實現,我也有本身的分支改版。這是一件很麻煩的事情。github
雖然NEO-GUI定位爲一個演示客戶端與開發工具,不過使用他的開發者仍是不少的,你們都要對NEO-GUI進行各式各樣的修改。工具
那麼爲何不增長一個插件機制呢,說幹就幹。區塊鏈
先貼地址,此分支版本的源碼在開發工具
https://github.com/lightszero/neo-gui.gitui
爲neo neovm neogui 三合一,隨時和NEO倉庫保持同步。插件
先增長一個插件模塊,裏面有兩個接口,一個IAPI,提供客戶端暴露給插件使用的接口htm
NEOGUI 繼承此接口。另外一個是IPLUGIN,插件實現此接口。blog
而後在NEO-GUI啓動時,動態尋找插件的dll,用反射方法找出其中的插件類型,並建立實例。
最後在NEO-GUI動態增長菜單,按下菜單時呼叫對應的插件。
這個插件機制就完成了。
咱們先來看一下效果
剛加上插件機制,和普通客戶端並沒有不一樣,那個good請無視掉,原本應該安置一個插件管理器什麼的。
在運行程序的目錄
建立一個文件夾
把插件copy進去,重啓gui便可生效。
咱們先copy 一個 sample_plugin
效果以下,爲這個插件增長了一個菜單項
功能是簡單的彈出了一個對話框
這個插件的源碼很是簡潔
咱們再安裝另外一個插件,他有一個實際的功能,能夠查詢storage存儲區裏面的內容
對neogui源碼的侵入性也很小
目前只修改了這麼多NeoGUI的源碼。