Red de conocimiento informático - Material del sitio web - Cómo implementar un motor de script en .NET

Cómo implementar un motor de script en .NET

NET proporciona un potente motor de secuencias de comandos que se puede utilizar directamente como lenguaje de secuencias de comandos utilizando cualquier lenguaje de programación en .NET CLR (como VB.NET, C#, JScript, J#, etc.). Usando el motor de script, podemos generar dinámicamente cualquier expresión o importar dinámicamente cualquier archivo de script y ejecutarlo en cualquier momento.

Descubrimos que hay al menos dos formas diferentes de utilizar un motor de script en .NET:

De hecho, CodeDom no es realmente un motor de script, en realidad es un compilador. Pero podemos usar CodeDom para simular el motor de script.

El uso del método Emit también puede lograr el objetivo de generar código ejecutable dinámicamente, y el código generado por Emit no necesita ser compilado, por lo que es más rápido. Pero lo que Emit inserta es en realidad código ensamblador y no puede considerarse un lenguaje de programación.

Este artículo presentará cómo utilizar CodeDom para generar dinámicamente código ejecutable.

Cómo implementar un motor de script en .NET (artículo de CodeDom) Blog de Mu Feng

1. Construya el compilador

Establezca los parámetros del compilador

Los parámetros del compilador deben configurarse en CompilerParameters:

CompilerOptions se usa para configurar los parámetros de la línea de comandos del compilador

IncludeDebugInformation se usa para indicar si se debe generar el ensamblado en la memoria

GenerateInMemory se usa para indicar si se genera el ensamblado en la memoria

GenerateExecutable se usa para indicar si el tipo de ensamblado generado es exe o dll

OutputAssembly se usa para indicar el tipo del archivo de programa generado Nombre (solo cuando GenerateInMemory es falso)

ReferencedAssemblies se usa para agregar una referencia al ensamblaje

Por ejemplo:

theParameters. ReferencedAssemblies.Add("System.dll ");

Crear un compilador para el idioma especificado

El compilador debe ser generado por CodeDomProvider para el idioma especificado.

La siguiente es una lista de algunos .NET CodeDomProviders:

vb.net Microsoft.VisualBasic.VBCodeProvider

C# Microsoft.CSharp.VBodeProvider

C# Microsoft.CSharp.VBodeProvider

C# Microsoft.CSharp.VBodeProvider

jscript Microsoft.JScript.JScriptCodeProvider

J# Microsoft.VJSharp.VJSharpCodeProvider

Tomando C# como ejemplo, el código para crear un compilador de C# es el siguiente:

// NET 1.1/1.0

Compilador ICodeCompiler = nuevo Microsoft.CSharp. CSharpCodeProvider().CreateCompiler( );

//.NET 2.0

Compilador ICodeCompiler = (ICodeCompiler) nuevo Microsoft.CSharp.CSharpCodeProvider().CreateCompiler();

//. NET 2.0

ICodeCompiler = (ICodeCompiler) nuevo Microsoft.CSharp.CSharpCodeProvider().CreateCompiler()

/CodeCompiler = (ICodeCompiler) nuevo Microsoft.CSharpCodeProvider( );

El siguiente es un ejemplo completo de cómo crear un compilador:

// lt; resumengt;

// Crear un compilador para el lenguaje de scripting correspondiente

// lt;/ resumengt;

private void createCompiler(string strLanguage, bool debugMode, string strAssemblyFileName)

{

this.CodeCompiler = ( ICodeCompiler) new Microsoft.CSharpCodeProvider() ;

Aquí hay un ejemplo completo de cómo crear un compilador:

// lt;/summarygt;