c# - 使用 DLR API 从 IronRuby 脚本捕获标准输出

标签 c# ironruby dynamic-language-runtime

我有一个非常简单的 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/

相关文章:

c# - 将表单数据发送到 ASP.net MVC 3 中的 Controller 操作有哪些不同的方法?

c# - DataTemplate 通过转换器绑定(bind)网格背景

ruby - cucumber 解析速度

c# - 使用动态/DLR 的 DynamicProxy

c# - ServiceStack.Ormlite.MySql SqlJoinBuilder 无效转换异常

c# - Web 服务请求调用 SOAP 请求缺少空参数

compiler-construction - 我可以将 VS2010 中的 IronRuby 项目编译成 DLL/exe 文件吗?

c# - 如何从 IronRuby 调用 C# IEnumerable

c# - 对对象使用 C# 动态方法

visual-studio-2010 - 我可以在 C# 4 中实现 method_missing 并让它实际返回一个值吗?