Динамическое выполнение программного кода - Visual Basic .NET
Формулировка задачи:
Как создать mini Visual studio с поддержкой языка vb net (на VB.NET) Типа такой:
Решение задачи: «Динамическое выполнение программного кода»
textual
Листинг программы
Imports Tech.DynamicCoding
Imports Tech.DynamicCoding.Compilers
Public Class Form1
Public Shared shTmp As String
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
shTmp = TextBox1.Text
Dim strCodeTmp As String = "Dim frm As New Form1" & vbLf & _
"Dim tbl As New DataTable" & vbLf & _
"tbl.Columns.Add(""1"", System.Type.GetType(""System.String""))" & vbLf & _
"tbl.Columns.Add(""2"", System.Type.GetType(""System.String""))" & vbLf & _
"Dim rowtmp As DataRow" & vbLf & _
"rowtmp = tbl.NewRow" & vbLf & _
"rowtmp(""1"") = ""Param1""" & vbLf & _
"rowtmp(""2"") = frm.shTmp" & vbLf & _
"tbl.Rows.Add(rowtmp)" & vbLf & _
"rowtmp = tbl.NewRow" & vbLf & _
"rowtmp(""1"") = ""Param2""" & vbLf & _
"rowtmp(""2"") = par1" & vbLf & _
"tbl.Rows.Add(rowtmp)" & vbLf & _
"return tbl"
'нужно импортировать свой exe чтобы обращаться к нему(мой проект - TestDLL)
Dim code As Object = CodeGenerator.CreateCode(Of DataTable)(New VB(), strCodeTmp, {"System.Data", "System.Xml", "TestDLL", "System.Windows.Forms"}, {"System.dll", "System.Xml.dll", "System.Data.dll", "TestDLL.exe", "System.Windows.Forms.dll"}, New CodeParameter("par1", GetType(String)))
Dim asd As String = "Тест" 'входящий параметр
Dim tbl As DataTable = code.Execute(asd)
For Each rw As DataRow In tbl.Rows
MsgBox(rw("1") & " " & rw("2"))
Next
End Sub
End Class