在我的程序中运行VB.Net代码,而不创建实例或参数。可能吗?

时间:2019-02-28 12:33:35

标签: vb.net

我当前正在尝试制作一个程序,您可以在其中将VB.NET脚本键入RichTextbox(strCode),然后执行它。就像我在Visual Studio中执行它一样。

我当前的代码如下:

    Dim objCompilerParameters As New CompilerParameters
    objCompilerParameters.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
    objCompilerParameters.ReferencedAssemblies.Add("System.dll")
    objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")
    objCompilerParameters.GenerateInMemory = True
    Dim objCompileResults As CompilerResults
    Dim Provider As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")

    objCompileResults = Provider.CompileAssemblyFromSource(objCompilerParameters, strCode)
    ' Get a reference to the assembly.
    '
    Dim objAssembly As System.Reflection.Assembly = objCompileResults.CompiledAssembly
    ' Create an instance of the DynamicCode class referenced in the source code.
    '
    Dim objTheClass As Object = objAssembly.CreateInstance("Dynam.DynamicCode")

    '----------------------------------------------------------------------------------------------------
    ' Create a parameter to be passed into the ExecuteCode function in class DynamicCode.

    Dim objFunctionParameters(0) As Object
    objFunctionParameters(0) = "Parameter 1"


    '----------------------------------------------------------------------------------------------------

    'Creating Result


    Dim objResult As Object = objTheClass.GetType.InvokeMember("ExecuteCode", _
                    BindingFlags.InvokeMethod, Nothing, objTheClass, objFunctionParameters)


    '---------------------

只要我的脚本中的名称空间是“ Dynam”,而公共类是“ TestClass”,它就可以正常运行。公共功能也必须命名为“ ExecuteCode”。就像在脚本中一样。

有没有一种方法可以创建此方法,而不必对函数和类名进行硬编码?因此,我可以只调用类,并且可以根据用户的需要调用它们。

先谢谢了。我希望这有点道理。如果没有,请告诉我。

0 个答案:

没有答案