首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 發現之旅第十四講:VB.NET 腳本引擎(上)─ 編譯腳本與組件快取完整流程

     編輯:關於C語言

組件快取機制


private static Hashtable myAssemblies = new Hashtable();
// Key: 腳本原始碼文字, Value: 編譯後組件

編譯前先查快取,命中則跳過編譯直接使用。

ReferencedAssemblies 屬性


private CompilerParameters myCompilerParameters = new CompilerParameters();
public StringCollection ReferencedAssemblies => myCompilerParameters.ReferencedAssemblies;
  • 初始化預設參考:mscorlib.dll、System.dll、System.Data.dll、System.Xml.dll、System.Drawing.dll、System.Windows.Forms.dll、Microsoft.VisualBasic.dll
  • 使用者可添加第三方組件擴充腳本能力

VBCompilerImports 屬性


private StringCollection myVBCompilerImports = new StringCollection();
public StringCollection VBCompilerImports => myVBCompilerImports;
  • 對應編譯器 /imports 參數,注入全域命名空間
  • 初始化預設添加 Microsoft.VisualBasic
  • 實現 VB.NET 模組層級成員的全域可見性

編譯完整流程

  1. 檢查快取 myAssemblies[strRuntimeSource]
  2. 設定 CompilerParameters(記憶體組件、偵錯資訊、Imports 選項)
  3. 建立 VBCodeProvider 執行編譯
  4. 處理編譯結果:錯誤記錄、成功則取得 CompiledAssembly
  5. 組件存入快取供下次重用
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved