Передача .Net Stream в IronRuby? - PullRequest
1 голос
/ 25 февраля 2010

Я использую IronRuby для анализа файлов Yaml, а затем использую проанализированный документ в C #. Это нормально работает для создания движка (Ruby.CreateEngine()) и выполнения YAML::load(File.open('myFile.yaml')).

Но это работает хорошо, потому что я могу жестко закодировать строку для имени файла, когда я выполняю несколько строк кода ruby.

Теперь я хочу понять, как передать поток из .Net, чтобы парсер Yaml загрузил его. Как мне это сделать с помощью скриптового движка?

1 Ответ

1 голос
/ 25 февраля 2010

Вы можете установить переменную с помощью ScriptScope, а затем использовать ее из кода Ruby. Например:

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