2
1-包含兩個元件A的winform主程序:
- 備註編輯鍵入一些代碼;
- 按鈕名稱編譯。
最終用戶可以鍵入在備忘錄編輯一些VB.Net代碼,然後對其進行編譯。
2 - 一個簡單的測試類:
代碼:
Public Class ClassTest
Public Sub New()
MsgBox("coucou")
End Sub
End Class
現在我想使用類ClassTest中,將在MemoEdit鍵入的代碼,然後編譯:
當打編譯我收到的錯誤:
的原因是,編譯器無法找到命名空間ClassTest
所以總結:
- 類ClassTest在主程序
- 終端用戶創建應該能夠使用它並在運行時創建一個新的程序集
有沒有人知道如何做t請戴上帽子?
非常感謝您的幫助。
代碼在WinForm的:
Public Class Form1
Private Sub SimpleButtonCompile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButtonCompile.Click
Dim Code As String = Me.MemoEdit1.Text
Dim CompilerResult As CompilerResults
CompilerResult = Compile(Code)
End Sub
Public Function Compile(ByVal Code As String) As CompilerResults
Dim CodeProvider As New VBCodeProvider
Dim CodeCompiler As System.CodeDom.Compiler.CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")
Dim Parameters As New System.CodeDom.Compiler.CompilerParameters
Parameters.GenerateExecutable = False
Dim CompilerResult As CompilerResults = CodeCompiler.CompileAssemblyFromSource(Parameters, Code)
If CompilerResult.Errors.HasErrors Then
For i = 0 To CompilerResult.Errors.Count - 1
MsgBox(CompilerResult.Errors(i).ErrorText)
Next
Return Nothing
Else
Return CompilerResult
End If
End Function
End Class