我有一个非常简单的test.rb文件:
puts "Hello World"
我想在c#中执行此文件,例如:
var runtime = Ruby.CreateRuntime();
runtime.ExecuteFile("C:\test.rb");
如何捕获“Hello World”?
答案 0 :(得分:3)
ScriptRuntime有一个IO属性,它返回一个ScriptIO对象。您可以在其上调用SetOutput并重定向输出。正如其他人提到的那样,还有Console.SetOut你可能想要调用,因为用户直接调用Console.WriteLine。使用ScriptIO的好处是你可以在不同的ScriptRuntime写入不同的输出中有多个脚本。
答案 1 :(得分:1)
您可以重定向标准输出并在C#程序as shown here中读取它。
答案 2 :(得分:0)
您可以做的一件事是在ExecuteFile之前调用Console.setOut和/或Console.setErr,然后再调用。第一次将输出重定向到您选择的流时,然后将其恢复为之前的值。
答案 3 :(得分:-1)
我认为this帖子会回答你的问题。