1

我正在尝试从允许 IronRuby 导入/导出 MEF 部件的博客文章中升级一些 4 年前的代码。

代码位于:https ://github.com/JogoShugh/IronRubyMef

不幸的是,尝试运行时出现此错误:

Method not found: 'Microsoft.Scripting.Actions.Calls.OverloadInfo[] 
Microsoft.Scripting.Actions.Calls.ReflectionOverloadInfo.CreateArray
(System.Reflection.MemberInfo[])

我在 IronRuby 论坛上只找到了一个参考,并发送了另一个注释。但是,有没有其他人知道可能导致这种情况的原因?

谢谢

4

1 回答 1

3

该错误通常是在从 ruby​​ 脚本调用 Object.new 时引起的。当然,这应该可以工作,IronRuby 1.1.3 似乎带有一个错误,如果您执行 Object.methods 它实际上列出了 :new 但它在调用时失败。

修复有点简单,只需将其添加到您的 Ruby 程序初始化之前,在任何需要调用之前:

class System::Object
  def initialize
  end
end

requires 'some/module'

# Rest of your code...

现在,当任何脚本调用 Object.new 时,它都会正常工作。我写了一篇关于这个问题的帖子:http: //marcel.bowlitz.com/continuous-integration/custom-resources-in-visual-studio-test-项目
更新: IronRuby 1.1.4(在http://github.com/IronLanguages/main中找到)修复了这个问题。您已签出代码并构建。

于 2013-01-13T23:09:29.090 回答