在應用程式中使用腳本引擎可以大幅增強程式的靈活性和可擴充性,類似MS Office和VS.NET的巨集功能。微軟.NET框架中Microsoft.vsa.dll中定義了腳本引擎的框架,而Microsoft.Visualbase.vsa.dll則定義了實作了VBA的腳本引擎。利用這兩個DLL可以定義自己的基於VBA.NET的腳本引擎,
Microsoft.vsa.dll中定義了一些框架接口,其中比較重要的接口包括
IVsaEngine 為腳本引擎接口,所有的腳本引擎使用該接口
IVsaSite 腳本引擎通訊接口,腳本引擎接受該接口來發布一些信息
IVsaItem 為腳本引擎相關資源的項目
IVsaCodeItem 為腳本程式碼模組
IVsaRefrenceItem 為腳本引擎所使用的外部參考對象
IVsaGlobalItem 為腳本引擎使用的全局對像模組
使用過程一般為實例化一個腳本引擎,將實現了IVsaSite的對象傳給腳本引擎對象,然後使用引擎的Items的CreateItem方法添加引用,代碼文本和全局對象.然後調用Compile方法編譯腳本引擎,使用RUN啟動引擎。
腳本引擎啟動後會在目前應用程式網域中根據腳本程式碼動態產生和載入了一個Assembly程式集,使用IVsaEngine.Assembly可存取動態產生的程式集。
Microsoft.VisualBase.vsa.dll實作了這些接口,並實作了基於VBA.NET語法的腳本引擎。
主要物件為VsaEngine
本程式提供一個C#寫的示範程式,使用微軟.NET框架1.1,該示範程式提供了一個通用的使用腳本引擎的模組,大家使用這個模組就可以非常方便的使用VBA腳本引擎來擴展自己的應用程式。
示範程式下載位址:
出處:XDesigner BLOG