0

.Net 是否有一种可嵌入的脚本语言,它支持某种产量(程序停止并将控制权交还给主机......下次运行它会从中断的地方继续)?

此外,应该可以保存 vm 的状态,并让它在以后继续运行。

Edit1:我看过 lua,虽然可以从 c# 访问全局变量,但这样做的整个方法感觉很笨拙。

Edit2:我也在看 Ironruby,似乎可以查询和设置全局变量,但不能一次性获得所有变量。

4

6 回答 6

1

用 VB 或 C# 编写它,并使用定义良好的类树来保存您的所有状态。这棵树将包含一个根类,所有数据都在列表等中,可序列化。

在适当的时候,将所有内容 XML 序列化为流文件。

重新启动时,从保存的文件中反序列化并从上次中断的地方开始。

于 2010-11-22T16:04:15.363 回答
1

嘘。
有一本关于在 boo 中制作自己的嵌入式 DSL 的书。我强烈推荐阅读(Oren the great): http: //www.manning.com/rahien/
示例章节: http: //www.manning.com/rahien/Sample1.pdf
以下是嵌入它的方法:
http: //boo.codehaus.org/Boo+as+an+embedded+scripting+language

于 2010-11-24T04:59:22.387 回答
1

bungee# 是一个 C# 脚本。实际上是用 c# 开发的一种编程语言,语法与 C# 相同。Bungee# 将在短时间内成为一个开源项目,但尚未发布。您将能够在 codeplex 上找到源代码。我想这是你想要的东西。因为它几乎支持 c# 中的所有关键字,并且定义了一些方法,您也可以在其中编写新方法。我希望你会喜欢它。蹦极链接是这个但尚未发布

于 2011-03-29T09:56:12.927 回答
0

您是否尝试过使用 C# 作为“脚本语言”?请参阅http://www.csscript.net以获取将 c# 作为脚本轻松集成到应用程序中的库。它使用 .NET 构建的编译器从文件或字符串中创建和加载新程序集。你可以在你的应用程序中做任何你可以做的事情,因为你有一个完整的 c#。包括产量。要暂停“VM”,您可以让脚本在线程中运行并暂停和恢复它。

于 2010-11-20T22:59:27.270 回答
0

我建议再看一遍 lua,如果你觉得有些东西是 hacky,只要确保你做对了,然后将它包装在一个类中,这样你以后就不那么 hacky 了。如果这是一个问题,那么已经有现有的托管 lua 解决方案可供使用。有时你根本无法找到一个非 hacky 的解决方案,因为还没有人费心去做。

于 2010-11-24T18:39:24.820 回答
0

根据上下文,PowerShell可能是一个不错的选择。可以在此处找到有关如何在 .Net 应用程序中托管PowerShell的文档,PowerShell 支持在每个命令库上执行命令 以及将代码块添加到要运行的PipeLine

保存 vm 的状态听起来有点棘手,我没有发现任何证据表明这可以通过PowerShell实现。但是,您可以使用名为Export-Clixml 的 CmdLet保存您可能感兴趣的任何对象的状态。

如果您的脚本需要与环境交互,PowerShell将是一个很好的选择,因为除了厨房水槽之外的所有东西似乎都会弹出PowerShell 模块。就是在CodePlex上搜索的结果。

于 2010-11-24T23:37:18.657 回答