Runtime Code
Compilación y ejecución dinámica de C# dentro del runtime para modding y extensiones.
Runtime Code
Eco incluye una carpeta RuntimeCode para compilar y cargar código C# durante la ejecución. Es una capacidad especializada y debe tratarse como una superficie de extensibilidad, no como una forma habitual de implementar gameplay.
Arquitectura
Código fuente
↓
CodeCompiler
↓
Compilación
↓
Assembly dinámico
↓
RuntimeBehaviour / driver
↓
JuegoLa solución incluye infraestructura para compilación, carga de assemblies y reporte de errores.
Cuándo utilizarlo
Casos razonables:
- modding;
- herramientas internas;
- contenido definido por usuarios;
- scripts dinámicos que no pueden compilarse con el proyecto principal.
No es una buena opción para sustituir el código normal de un sistema que conoces de antemano.
Seguridad
Ejecutar C# generado o recibido externamente equivale a ejecutar código con los permisos del proceso. Nunca trates código de mods desconocidos como contenido de datos inocente.
Flujo recomendado
Validar origen
Comprueba que el código procede de una fuente de confianza.
Compilar
Utiliza CodeCompiler y registra los errores de compilación.
Cargar
Añade el assembly al runtime mediante el sistema de carga correspondiente.
Crear comportamiento
Utiliza RuntimeBehaviour o el driver dinámico para asociar el código a un objeto.
Fuente
RuntimeCode
Implementación de la infraestructura de código dinámico.
