Hola aquí os traigo el ejemplo de como compilar en tiempo ejecucion y en memoria de la aplicación, y como ejecutar las funciones que tiene el código escrito
Esto os puede servir si por ejemplo almaceneis clases en la bbdd, si clases, o formularios completos y quereis que se ejecuten en el mismo momento sin tener que crear una dll completa para algún pequeño cambio o corrección que querais hacer.
Para ello necesitareis importar CodeDom y System.Reflection.
Es recomendable que veais el video primero donde se explica las posibilidades y opciones que tiene antes de copiar el código que os pondré más abajo.
Aquí va el código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Imports System.CodeDom Imports System.Reflection Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim DLL As Assembly Dim Proveedor As New VBCodeProvider Dim Compilador = Proveedor.CreateCompiler Dim Parametros As New CodeDom.Compiler.CompilerParameters Parametros.GenerateExecutable = False Parametros.GenerateInMemory = True 'Parametros.OutputAssembly = "" Parametros.ReferencedAssemblies.Add("C:\Adb\adodb.dll") Dim Resultado As Compiler.CompilerResults = Compilador.CompileAssemblyFromSource(Parametros, Me.TextBox1.Text) DLL = Resultado.CompiledAssembly Dim ObjetoPrueba = DLL.CreateInstance("Ejemplo") MsgBox(ObjetoPrueba.DimeHola("Jose")) ObjetoPrueba.AbrirBBDD() End Sub |
y Aquí te dejo el código de que se esta compilando
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Public Class Ejemplo Public Sub New() End sub Public Function DimeHola(Byval Nombre as String) as String Return "Hola " & Nombre End Function Public Function AbrirBBDD() Dim Db as new adodb.connection() Db.open() End Function End Class |
Si te sirvo suscribete a mi web y a mi canal de youtube para mas ejemplos y actualizaciones.
Quizás te interese DTO a datatable aqui