El uso de un motor de script en una aplicación puede mejorar en gran medida la flexibilidad y escalabilidad del programa, similar a las funciones macro de MS Office y VS.NET. En el marco Microsoft .NET, Microsoft.vsa.dll define el marco del motor de secuencias de comandos, mientras que Microsoft.Visualbase.vsa.dll define el motor de secuencias de comandos que implementa VBA. Puede utilizar estas dos DLL para definir su propio motor de script basado en VBA.NET.
Microsoft.vsa.dll define algunas interfaces de marco, entre las cuales se incluyen las interfaces más importantes.
IVsaEngine es la interfaz del motor de secuencias de comandos, todos los motores de secuencias de comandos utilizan esta interfaz
Interfaz de comunicación del motor de script IVsaSite, el motor de script acepta esta interfaz para publicar alguna información
IVsaItem es un elemento relacionado con los recursos del motor de secuencias de comandos.
IVsaCodeItem es el módulo de código de script
IVsaRefrenceItem es el objeto de referencia externo utilizado por el motor de script
IVsaGlobalItem es un módulo de objeto global utilizado por los motores de secuencias de comandos.
El proceso de uso generalmente consiste en crear una instancia de un motor de secuencias de comandos, pasar el objeto que implementa IVsaSite al objeto del motor de secuencias de comandos y luego usar el método CreateItem de los elementos del motor para agregar referencias y texto de código. y objetos globales. Luego llame El método Compile compila el motor de script y usa RUN para iniciar el motor.
Una vez iniciado el motor de script, se genera dinámicamente un ensamblado y se carga en el dominio de la aplicación actual según el código del script. Utilice IVsaEngine.Assembly para acceder al ensamblado generado dinámicamente.
Microsoft.VisualBase.vsa.dll implementa estas interfaces e implementa un motor de secuencias de comandos basado en la sintaxis VBA.NET.
El objeto principal es VsaEngine.
Este programa proporciona un programa de demostración escrito en C#, utilizando Microsoft .NET Framework 1.1. El programa de demostración proporciona un módulo general para usar el motor de secuencias de comandos. Al utilizar este módulo, puede utilizar fácilmente el motor de secuencias de comandos VBA. para ampliar su propia aplicación.
Dirección de descarga del programa de demostración:
Fuente: BLOG de XDesigner