爲NEO-GUI 添加插件系統

做者:李劍英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的源碼。

相關文章
相關標籤/搜索