Domanda

Ho seguito un esercitazione su ottenendo IronRuby in funzione e che funziona alla grande. Tuttavia quando provo a scavare un po 'più profonda, come l'utilizzo di eventi click dei pulsanti ottengo questo errore;

Could not load type 'System.Reflection.Emit.ModuleBuilder' from assembly 'mscorlib, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC'.

E la mia 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

E 'attualmente posisible di costruire applicazioni professionali con IronRuby?

È stato utile?

Soluzione

Il problema con l'utilizzo di linguaggi dinamici su Windows Phone 7 è la sua omissione della realizzazione System.Reflection.Emit. Tuttavia, IronRuby è in grado di eseguire la maggior parte del codice attraverso il suo interprete, invece che sull'emissione IL, che rende possibile l'esecuzione in Windows Phone 7. Tuttavia, le cose come sottoclasse tipi CLR e interfacce attuazione richiedono che emettono IL, così quelli .NET interoperabilità caratteristiche saranno non essere funzionale su Windows Phone 7.

Per la vostra esempio specifico, invece di utilizzare un blocco, provare a utilizzare un metodo:

def on_button_click(s, e)
  MessageBox.show("Button Click Works!")
end

button.click.add(method(:on_button_click))

Tuttavia, se questo non funziona per voi, per favore presentare un problema .

Altri suggerimenti

Probabilmente ma io personalmente credo che il solo modo per fare un lavoro professionale sta usando il sistema operativo nativo. In questo modo si ha la più potere di quello che hai da fare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top