在應(yīng)用程序中使用腳本引擎可以大大增強(qiáng)程序的靈活性和可擴(kuò)展性,類似MS Office和 VS.NET的宏功能。微軟.NET框架中Microsoft.vsa.dll中定義了腳本引擎的框架,而Microsoft.Visualbase.vsa.dll則定義了實(shí)現(xiàn)了VBA的腳本引擎。利用這兩個(gè)DLL可以定義自己的基于VBA.NET的腳本引擎,
Microsoft.vsa.dll中定義了一些框架接口,其中比較重要的接口包括
IVsaEngine 為腳本引擎接口,所有的腳本引擎使用該接口
IVsaSite 腳本引擎通訊接口,腳本引擎接受該接口來發(fā)布一些信息
IVsaItem 為腳本引擎相關(guān)資源的項(xiàng)目
IVsaCodeItem 為腳本代碼模塊
IVsaRefrenceItem 為腳本引擎使用的外部引用對象
IVsaGlobalItem 為腳本引擎使用的全局對象模塊
使用過程一般為實(shí)例化一個(gè)腳本引擎,將實(shí)現(xiàn)了IVsaSite的對象傳給腳本引擎對象,然后使用引擎的Items的CreateItem方法添加引用,代碼文本和全局對象.然后調(diào)用Compile方法編譯腳本引擎,使用RUN啟動(dòng)引擎。
腳本引擎啟動(dòng)后會(huì)在當(dāng)前應(yīng)用程序域中根據(jù)腳本代碼動(dòng)態(tài)生成和加載了一個(gè)Assembly程序集,使用 IVsaEngine.Assembly可訪問動(dòng)態(tài)產(chǎn)生的程序集。
Microsoft.VisualBase.vsa.dll實(shí)現(xiàn)了這些接口,并實(shí)現(xiàn)了基于VBA.NET語法的腳本引擎。
主要對象為 VsaEngine
本程序提供一個(gè)C#寫的演示程序,使用微軟.NET框架1.1,該演示程序提供了一個(gè)通用的使用腳本引擎的模塊,大家使用這個(gè)模塊就可以非常方便的使用VBA腳本引擎來擴(kuò)展自己的應(yīng)用程序。
演示程序下載地址:http://m.survivalescaperooms.com/Files/xdesigner/VBAScriptDemo.rar
出處:XDesigner BLOG
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注