我刚开始使用IronRuby。这是我的测试类:
class Program
{
static void Main(string[] args)
{
var path = @"C:UsersfraysDesktoptest.rb";
var engine = Ruby.CreateEngine();
var scope = engine.Runtime.CreateScope();
scope.SetVariable("sendNext", new Action<string>(SendNext));
engine.ExecuteFile(path, scope);
Console.Read();
}
private static void SendNext(string text)
{
Console.WriteLine(text);
}
}
这是我的测试脚本:
sendNext 'heyyy'
然而,当尝试运行程序时,它抛出一个异常,表示wrong number of arguments (1 for 0)
,即使该方法明确接受字符串作为参数。
这说明在c#中使用委托调用IronRuby是不可能的,但是你可以直接调用invoke方法。
sendNext.Invoke( 'heyyy')