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 フォーラムでこれに関する参照が 1 つだけ見つかり、別のメモを送信しました。しかし、他の誰かがこれを引き起こす原因を知っていますか?

ありがとうございました

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を呼び出すと、正しく動作します。プロジェクトの
更新: IronRuby 1.1.4 ( http://github.com/IronLanguages/mainにあります) では、この問題が修正されています。コードをチェックアウトしてビルドしました。

于 2013-01-13T23:09:29.090 に答える