【问题标题】:Passing .Net Stream into IronRuby?将 .Net 流传递给 IronRuby?
【发布时间】:2010-02-25 02:37:47
【问题描述】:

我正在使用 IronRuby 来解析 Yaml 文件,然后在 C# 中使用解析后的文档。这适用于创建引擎 (Ruby.CreateEngine()) 和执行 YAML::load(File.open('myFile.yaml'))

但是,这很好用,因为当我执行几行 ruby​​ 代码时,我可以为文件名硬编码一个字符串。

现在,我想了解如何从 .Net 中传递一个流以让 Yaml 解析器加载它。如何使用脚本引擎做到这一点?

【问题讨论】:

    标签: .net yaml ironruby


    【解决方案1】:

    您可以使用 ScriptScope 设置变量,然后在 Ruby 代码中使用它。 例如:

    ScriptEngine eng = Ruby.CreateEngine();
    ScriptScope scope = eng.CreateScope();
    scope.SetVariable("my_stream",stream);
    eng.Execute("self.my_stream.read() # or whatever...", scope);
    

    【讨论】:

    • 但是创建一个 StreamReader 并传入 StreamReader 而不是流。然后你可以这样做:my_yaml = YAML.load(self.my_stream_reader.ReadToEnd)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2014-05-03
    • 2015-02-10
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多