¿Cómo se codifica la programación dinámica?
-
La situación de la que estás hablando es la compilación y ejecución dinámica, pero este método requiere demasiados desvíos para lograr tu objetivo.
Difícil de lograr
//El siguiente es un ejemplo:
Usa el sistema;
Usa el sistema. Reflexionar;
Utilizar el sistema. Globalización;
Usa Microsoft. CSharp
Usa el sistema. CodeDom
Utiliza el sistema. CodeDom .Compiler;
Utiliza el sistema. text;
Aplicación de consola de espacio de nombres1
{
Curso público
{
static void Main(string[ ] args)
{
// 1.CSharpCodePrivoder
CSharpCodeProvider objcsharpcodeprovoder = new CSharpCodeProvider();
// 2.ICodeComplier
descompilador ico objICodeCompiler = objcsharpcodeprovoder. crear compilador();
// 3. Parámetros del compilador
parámetros del compilador objCompilerParameters = nuevos parámetros del compilador();
objCompilerParameters. ensamblados de referencia . Add(" system . dll ");
objCompilerParameters. GenerateExecutable = false
objCompilerParametersGenerateInMemory = true
// 4. Resultado del compilador
Resultado del compilador cr = objICodeCompiler. CompileAssemblyFromSource(objCompilerParameters, generar código());
if (cr.Errors.HasErrors)
{
Consola. WriteLine("Error de compilación: ");
foreach(Error del compilador en error cr. Error)
{
Consola. WriteLine(Error.ErrorText);
}
}
Otro
{
//A través de la reflexión Llame a la instancia de HelloWorld.
Montaje = cr. Ensamblado compilado;
objeto objHelloWorld = objAssembly. crear instancia(" universidad dinámica. hola mundo");
MethodInfo objMI = objHelloWorld. ObtenerTipo().
get método(" Salida ");
Console. WriteLine(objMI.Invoke(objHelloWorld, null));
}
Consola. ReadLine();
}
Código de generación de cadenas estáticas()
{
StringBuilder sb = new StringBuilder();< / p>
Alguien (abreviatura de alguien)Append("Usar sistema;");
Alguien (abreviatura de alguien)Append(entorno. nueva línea);
Alguien (abreviatura para alguien)Append("Degradación dinámica del espacio de nombres");
Alguien (abreviatura de alguien)Append(environment.newline);
Alguien (abreviatura de alguien) append (" { ")
Alguien (abreviatura de alguien) append (environment. newline)
Alguien (abreviatura de alguien) append(" clase pública hola mundo ");
Alguien (abreviatura de alguien) appends (environment. newline);
Alguien (abreviatura de alguien) appends (" { "
Alguien (abreviatura de alguien) append(environment.line); break);
Alguien (abreviatura de alguien) append(" public string OutPut()");
Alguien (abreviatura de alguien) agrega (entorno. nueva línea);
Alguien (abreviatura de alguien) agrega (" { ");
Alguien (abreviatura de alguien) agrega (entorno. nueva línea);
Alguien (abreviatura de alguien) agrega( " return " ¡Hola mundo!\";");
Alguien (abreviatura de alguien) append (environment. newline
Alguien (abreviatura de alguien) append (" } ");
Alguien (abreviatura de alguien) agrega (entorno. nueva línea);
Alguien (abreviatura de alguien) agrega (" } "); alguien) agrega (entorno. nueva línea);
p>Alguien (abreviatura de alguien) append(" } ");
Código de cadena = sb. ToString();
Consola. WriteLine(código);
Consola. WriteLine();
Código de retorno;
}
}
}