将.Net Stream传递给IronRuby?

时间:2010-02-25 02:37:47

标签: .net yaml ironruby

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

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

现在,我想了解如何从.Net传递流以让Yaml解析器加载它。如何使用脚本引擎执行此操作?

1 个答案:

答案 0 :(得分: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);