سؤال

يعطيني تنفيذ الرمز أدناه الاستثناء التالي على السطر الأخير:

InvalidOperationException: "متغير غير محدود: القيمة"

var rubyRuntime = Ruby.CreateRuntime();
rubyRuntime.UseFile("HandleMoveRequested.rb");
var engine = rubyRuntime.GetEngine("rb");
dynamic ruby = engine.Runtime.Globals;

var handler = ruby.HandleMoveRequested.@new();

dynamic msg = new ExpandoObject();
msg.x = 1;
msg.y = 2;

handler.handle(msg);

محتويات HandleMoverequested.rb هي:

class HandleMoveRequested
    def handle(msg)
        System::Console.WriteLine msg.x
        System::Console.WriteLine msg.y
    end
end

في الأساس ، أريد فقط أن أكون قادرًا على تمرير كائن ديناميكي بالكامل إلى طريقة "مقبض" كائن Ruby هذا وأن يكون قادرًا على الوصول إلى خصائص "X" و "Y" على هذا الكائن. هل أنا نباح الشجرة الخاطئة؟

هل كانت مفيدة؟

المحلول

لقد اختبرت الكود الخاص بك (كما هو) بعد بناء أحدث من المصدر:http://github.com/ironruby/ironruby

الرجاء جرب هذا. أتصور أنه سيتم تضمين الإصلاح في بناء RC التالي (RC3؟) وبعد ذلك.
عندما تبني من المصدر ، تأكد من إنشاء بناء "V4 إصدار" باستخدام Ruby4.sln

تعديل: اختبرت نفسي ، هذا يعمل بدون مشكلة في الأحدث

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top