我刚开始使用IronRuby。这是我的测试类:
class Program
{
static void Main(string[] args)
{
var path = @"C:\Users\frays\Desktop\test.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)
,即使该方法肯定会将一个字符串作为参数。
答案 0 :(得分:0)
这表示不可能Calling IronRuby from C# with a delegate,但你可以调用invoke方法。
sendNext.Invoke( 'heyyy')