我有一个非常简单的 test.rb 文件:
puts "Hello World"
我想在c#中执行这个文件,例如:
var runtime = Ruby.CreateRuntime();
runtime.ExecuteFile("C:\test.rb");
如何捕获“Hello World”?
最佳答案
ScriptRuntime 有一个返回 ScriptIO 对象的 IO 属性。您可以对其调用 SetOutput 并重定向输出。正如其他人提到的,还有 Console.SetOut,您可能想调用它以防用户直接调用 Console.WriteLine。不过,使用 ScriptIO 的好处是您可以在不同的 ScriptRuntime 中将多个脚本写入不同的输出。
关于c# - 使用 DLR API 从 IronRuby 脚本捕获标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441224/