Die Verwendung einer Skript-Engine in einer Anwendung kann die Flexibilität und Skalierbarkeit des Programms erheblich verbessern, ähnlich wie die Makrofunktionen von MS Office und VS.NET. Im Microsoft .NET Framework definiert Microsoft.vsa.dll das Skript-Engine-Framework, während Microsoft.Visualbase.vsa.dll die Skript-Engine definiert, die VBA implementiert. Sie können diese beiden DLLs verwenden, um Ihre eigene Skript-Engine auf Basis von VBA.NET zu definieren.
Microsoft.vsa.dll definiert einige Framework-Schnittstellen, darunter die wichtigeren Schnittstellen
IVsaEngine ist die Skript-Engine-Schnittstelle. Alle Skript-Engines verwenden diese Schnittstelle
Kommunikationsschnittstelle der IVsaSite-Skript-Engine. Die Skript-Engine akzeptiert diese Schnittstelle, um einige Informationen zu veröffentlichen
IVsaItem ist ein Element, das sich auf Skript-Engine-Ressourcen bezieht
IVsaCodeItem ist das Skriptcodemodul
IVsaRefrenceItem ist das externe Referenzobjekt, das von der Skript-Engine verwendet wird
IVsaGlobalItem ist ein globales Objektmodul, das von Skript-Engines verwendet wird,
im Allgemeinen darin, eine Skript-Engine zu instanziieren, das Objekt, das IVsaSite implementiert, an das Skript-Engine-Objekt zu übergeben und dann die CreateItem-Methode der Elemente der Engine zu verwenden, um Referenzen und Codetext hinzuzufügen Rufen Sie dann die Compile-Methode auf, kompilieren Sie die Skript-Engine und starten Sie sie mit RUN.
Nachdem die Skript-Engine gestartet wurde, wird basierend auf dem Skriptcode dynamisch eine Assembly-Assembly generiert und in die aktuelle Anwendungsdomäne geladen. Verwenden Sie IVsaEngine.Assembly, um auf die dynamisch generierte Assembly zuzugreifen.
Microsoft.VisualBase.vsa.dll implementiert diese Schnittstellen und implementiert eine Skript-Engine basierend auf der VBA.NET-Syntax.
Das Hauptobjekt ist VsaEngine.
Dieses Programm stellt ein in C# geschriebenes Demoprogramm zur Verfügung, das das Microsoft .NET Framework 1.1 verwendet. Mit diesem Modul können Sie die VBA-Skript-Engine problemlos verwenden Eigene Anwendung erweitern.
Download-Adresse des Demoprogramms:
Quelle: XDesigner BLOG