我正在将 VB.Net 脚本添加到 C# 应用程序中。如何使用 CS Script 重新编译脚本?在 C# 后端,我添加如下脚本代码:
public static string AddGlobalCode(string code)
{
// Wrap the user's code in some boilerplate
string codeText =
@"Option Strict Off
Imports System
Namespace DXBScript
Public Module globals
" + code + @"
End Module
End Namespace";
try
{
CSScript.LoadCode(codeText);
return "OK";
}
catch (Exception ex)
{
return ex.Message;
}
}
code
一些 vb.net 代码在哪里。它可以是Class
,Sub
等Function
。例如:
Function DoSomething(x)
Return x + x
End Function
Class SomeClass
...
End Class
CallSomeFunction()
我第一次运行该AddGlobalCode
函数时,它编译正常,我可以调用该DoSomething
函数。但是,如果我想修改脚本(无需重新启动整个应用程序),例如:
Function DoSomething(x)
Return x + x * 2
End Function
如果我AddGlobalCode
再次运行然后执行DoSomething
函数 - 使用相同的参数 - 我得到原始结果 ( x + x
),而不是新结果 ( x + x * 2
)。如果我使用不同的参数运行该函数,则会出现错误:
错误 BC30562:“DoSomething”在模块“DXBScript.globals”和“DXBScript.globals”中的声明之间不明确。
如何删除然后添加或修改DoSomething
?最好,我会删除或修改整个globals
VB 模块,然后将其添加回来——因为脚本中不仅仅是函数DoSomething
。
这是我作为 CS Script 的第一次尝试(使用 MS Script Control)。