我已经关注了tutorial关于让rubruby运行起来并且运行良好。但是当我尝试深入研究时,比如使用按钮点击事件,我得到了这个错误;
Could not load type 'System.Reflection.Emit.ModuleBuilder' from assembly 'mscorlib, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC'.
和我的MainPage.rb
include System
include System::Windows
include System::Windows::Controls
# Set the titles
Phone.find_name("ApplicationTitle").text = "this is the application title"
Phone.find_name("PageTitle").text = "and page title here"
# Create a new button and add to page
button = Button.new
button.content = "Click Me"
Phone.find_name("ContentPanel").children.add(button)
button.click do |s,e| # breaks here
MessageBox.show("Button Click Works!")
end
使用ironruby构建专业应用程序目前是否可以使用?
答案 0 :(得分:0)
在Windows Phone 7上使用动态语言的问题是省略了System.Reflection.Emit
实现。但是,IronRuby能够通过它的解释器运行大多数代码,而不是发出IL,这使得它可以在Windows Phone 7中运行。但是,像CLR类型的子类化和实现接口这样的东西需要发出IL,所以那些.NET互操作功能将在Windows Phone 7上无法正常运行。
对于您的具体示例,请尝试使用方法:
,而不是使用块def on_button_click(s, e)
MessageBox.show("Button Click Works!")
end
button.click.add(method(:on_button_click))
但是,如果这不适合您,请submit an issue。
答案 1 :(得分:-1)
可能我个人认为做专业工作的唯一方法就是使用原生操作系统。这样你就拥有了你所拥有的最强大的力量