代码之家  ›  专栏  ›  技术社区  ›  Toad

用于.net的脚本语言,它支持生成和保存虚拟机的状态

  •  0
  • Toad  · 技术社区  · 14 年前

    是否有一种用于.Net的可嵌入脚本语言,它支持某种类型的屈服(程序停止并将控制结果返回到主机。。。在下一次运行中,它会继续在中断的地方运行吗?

    此外,应该可以保存vm的状态,并让它在以后的某个时间继续。

    编辑1: 我看过lua,虽然人们可以从c#访问globals,但整个方法都让人觉得老套。

    编辑2: 我还研究了ironruby,它似乎可以查询和设置全局变量,但不能一次性获得所有变量。

    6 回复  |  直到 13 年前
        1
  •  1
  •   smirkingman    14 年前

    用VB或C#编写它,用一个定义良好的类树来保存所有的状态。此树将由一个根类组成,其中所有数据都在列表等中,可序列化。

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

    重新启动时,从保存的文件中反序列化并从停止的位置开始。

        2
  •  1
  •   basarat    14 年前

    是的。
    有一本关于在boo中制作自己的嵌入式DSL的书。我强烈推荐阅读(奥伦大帝): http://www.manning.com/rahien/
    示例章节: http://www.manning.com/rahien/Sample1.pdf
    下面是如何嵌入的:
    http://boo.codehaus.org/Boo+as+an+embedded+scripting+language

        3
  •  1
  •   Burcu Co    14 年前

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

        4
  •  0
  •   Remo Gloor    14 年前

    你试过用C语言作为“脚本语言”吗?见 http://www.csscript.net 对于提供将c#as脚本轻松集成到应用程序中的库。它使用.NET编译程序从文件或字符串创建并加载新程序集。你可以在你的应用程序中做任何你能做的事情,因为你有一个完整的c#。包括收益。要暂停“VM”,可以让脚本在线程中运行,然后暂停并继续。

        5
  •  0
  •   William    14 年前

    我建议你再看一遍lua,如果你觉得有什么东西很讨厌,那就确保你做得对,然后把它包装在一个类中,这样你以后就不会那么讨厌了。如果有问题的话 existing 可使用的托管lua解决方案。有时你根本找不到一个非黑客的解决方案,因为还没有人费心去做一个。

        6
  •  0
  •   Bas Bossink    14 年前

    取决于上下文 PowerShell 可能是个不错的人选。 关于如何托管的文档 PowerShell 在.Net应用程序中 可以找到 here ,PowerShell支持在 per command bases 以及添加 chunks of code 到 将要运行的 PipeLine .

    保存vm的状态听起来有点棘手我没有发现 有证据表明 PowerShell . 但是你可以 使用 CmdLet 打电话 Export-Clixml 拯救国家 任何你可能感兴趣的东西。

    PowerShell 如果您的脚本需要 与环境互动,因为 PowerShell Modules 似乎 除了厨房的水槽,什么都可以弹出。 This 是多么的 搜索 CodePlex 出现了。