كيف أقوم بتمرير توسيع من C# إلى IronRuby؟
-
23-09-2019 - |
سؤال
يعطيني تنفيذ الرمز أدناه الاستثناء التالي على السطر الأخير:
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
تعديل: اختبرت نفسي ، هذا يعمل بدون مشكلة في الأحدث
لا تنتمي إلى StackOverflow