- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,这是我在 SharpDevelop 项目的 bin/debug 文件夹中设置的 ruby 文件的代码:
class Run_Marshal
def initialize(id, name)
@list = []
@list[0] = Employee_Info.new(id, name)
File.open("employee_sheet.es", "wb") {|f| Marshal::dump(@list, f)}
end
end
class Employee_Info
attr_accessor :id
attr_accessor :name
def initialize(id, name)
@id = id
@name = name
end
end
上面的代码允许将 Employee_Info 对象序列化到一个文件中。请注意,我已经安装了 IronRuby。
下面是我用来执行 ruby 代码的 C# 代码。将参数从 C# 传递到我的新 Ruby 对象很重要。
void Btn_exportClick(object sender, EventArgs e)
{
var engine = Ruby.CreateEngine();
engine.ExecuteFile("Ruby_Classes.rb");
dynamic ruby = engine.Runtime.Globals;
int id = 0;
string name = "John Coles";
dynamic foo = ruby.Run_Marshal.@new(id, name);
}
最后,这是在另一个不同的 ruby 环境中设置的另一个 ruby 项目的 ruby 代码。
@my_foo = File.open("Data/employee_sheet.es", "rb") {|f| Marshal.load(f)}
@name = @my_foo[0].name
当然,我还确保在其他环境中提供 Employee_Info 类。
class Employee_Info
attr_accessor :id
attr_accessor :name
def initialize(id, name)
@id = id
@name = name
end
end
代码从我的 SharpDevelop 项目中完美运行,它在 bin/debug 文件夹中输出一个序列化(编码)文件。然后,我将该序列化文件放入另一个 ruby 环境的另一个文件夹中。
当我运行其他环境时,程序崩溃并产生此错误:“ArgumentError occured.Undefined class/module System::”
我做了一些更多的测试,我意识到当我将上面的代码更改为这个时(见带有三重'*'的行:
class Run_Marshal
def initialize(id, name)
@list = []
@list[0] = Employee_Info.new(0, "Beettlejuice") // ***
File.open("employee_sheet.es", "wb") {|f| Marshal::dump(@list, f)}
end
end
现在打开序列化文件没有任何问题。所以我怀疑问题是由于从 C# 代码传递给 ruby 代码的参数引起的。我确实需要为更复杂的任务传递 c# 变量,但到目前为止我还不知道如何让它工作。我希望你们能解释什么是错的。那么如何将参数变量从 C# 传递到 Ruby?
谢谢!
最佳答案
我无法解释如何以及为什么,但我是这样解决问题的:
class Run_Marshal
def initialize(id, name)
@list = []
@list[0] = Employee_Info.new(id, name.to_s)
File.open("employee_sheet.es", "wb") {|f| Marshal::dump(@list, f)}
end
end
我将 to_s 添加到传递的字符串中。显然,Ruby 无法将参数识别为字符串。
关于c# - IronRuby,如何将参数变量从 C# 传递到 Ruby?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14552273/
我想知道如何读取由 IronRuby“解析”的文件的当前工作目录。看起来“执行目录”与ir.exe文件相同。 我需要它来创建 XNA 解决方案中内容的相对路径,而不需要对路径进行硬编码。 最佳答案 来
有没有人成功地将 Watir 与 IronRuby 一起使用?我收到一个错误,提示找不到所需的文件“Watir”。我需要设置什么路径才能让这个文件在 IronRuby 中工作? 由于某种原因,我的 i
我有一个执行用户生成的 IronRuby 脚本的应用程序,其中每个线程都在自己的线程上执行。我遇到的问题是,可能会发生某些事件,需要在脚本中的任意点停止 IronRuby 脚本。 我可以通过中止正在运
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我计划在 .Net 上使用 Ruby 和 RoR 3.x 想知道 IronRuby 是否正在积极开发中,我最后一次听说大约一年前的小道消息是微软撤回了对它的支持。任何人都可以确认状态吗? 最佳答案 虽
虽然我知道 IronRuby 还没有完全准备好让世界使用它,但我想知道这里是否有人尝试过它并测试了它在原始性能方面与其他 Rubies 相比有多好? 如果是这样,结果如何,您是如何衡量绩效的(哪些基准
This page在 IronRuby 帮助网站上谈到能够“要求”一些众所周知的程序集,例如 System.Windows.Forms 而无需启动整个“ah-come-on-gimme-a-break
问候!我们正在开发一个 IronRuby 项目。有一个 C# WPF 应用程序。我们为该应用程序编写了一个模块。当 IronRuby 中出现错误时,应用程序会显示一个消息框。它只显示错误消息。它没有显
虽然我不是 .NET 开发人员,但我总是对 DLR 团队在 Microsoft 所做的工作感到兴奋。我看了几个来自各种 Ruby session 的视频,其中 John Lam 展示了 IronRub
我是 .Net 程序员,希望扩展并可能在我当前和 future 的 Web 应用程序中使用一些 Ruby。看着Iron Ruby Website最后一次发布是将近一年前:2011 年 3 月 13 日
我们的目标是实现脚 native 制,使用 DLR 的 Microsoft.Scripting 和托管程序集。 现在,有人知道 IronRuby 1.0 和 IronPython 2.6 之间的性能差
为什么某些面向 .net 平台的语言以 Iron- 作为前缀?似乎这种约定仅适用于非微软开发的语言。 最佳答案 这是实现在 CLR 上运行的动态语言的约定(实际上是 DLR)。 IIRC,它是“I R
想必大家都已经听说过some key developers leaving the Dynamic Languages team的消息了。由于他们认为 Microsoft 对动态语言的支持正在减弱。
我试图在示例应用程序中同时运行 ironruby 和 ironpython。 我得到一个异常(exception) - 未处理的异常:System.Reflection.TargetInvocatio
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我看到 IronRuby 团队记录了 using ActiveRecord in IronRuby with MSSQL - 它们表明需要对适配器进行一些调整。 在 interview on 8/11
我正在尝试在我的 Mac 上安装以下 ruby gem: http://www.sinatrarb.com/intro.html 我收到以下消息: michael-rosarios-mac
我们通过托管 IronRuby 引擎实现表达式评估器。求值器的简化版你可以看here . 现在我们正尝试通过在多线程中执行表达式来提高 IronRuby 的性能(我们做到了)。一个问题困扰着我们——E
有人有这方面的数字吗?我只是在找一个百分比,一个总结会更好。 标准合规性:实现如何符合标准语言规范? 对于那些还不清楚的:我强调当前 .下面提供的 IronPython 链接包含上次编辑超过 2 年的
当我引用最新版本的 Microsoft.Scripting(IronPython 附带的版本)时,我在 Visual Studio 中收到警告。 是否可以在同一个应用程序中并排部署/使用它们?是否有更
我是一名优秀的程序员,十分优秀!