IronRuby错误:Microsoft.Scripting.Actions.Calls.OverloadInfo(尝试移植MEF)

时间:2012-11-15 05:47:42

标签: mef ironruby

我正在尝试从允许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论坛上找到了一个对此的引用,并发送了另一个注释。但是,是否有其他人知道可能导致这种情况的原因?

谢谢

1 个答案:

答案 0 :(得分: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-projects
更新: IronRuby 1.1.4(在http://github.com/IronLanguages/main中找到)修复了此问题。你有结帐代码和构建。