Ich möchte IronRuby als Skriptsprache verwenden (z. B. als Lua ). NET-Projekt. Ich möchte zum Beispiel in der Lage sein, von einem Ruby-Skript aus bestimmte Ereignisse zu abonnieren, die in der Host-Anwendung ausgelöst werden, und Ruby-Methoden von ihr aufzurufen.
Ich verwende diesen Code, um die IronRuby-Engine zu instanziieren:
%Vor%Angenommen, index.rb enthält:
%Vor%Wie mache ich das:
Sie können einfach .NET-Ereignisse verwenden und diese in Ihrem IronRuby-Code abonnieren. Wenn Sie beispielsweise das nächste Ereignis in Ihrem C # -Code haben:
%Vor%Dann in IronRuby können Sie es wie folgt abonnieren:
%Vor% Um Ihre .NET-Klasse innerhalb Ihres Ruby-Codes verfügbar zu machen, verwenden Sie ScriptScope
und fügen Sie Ihre Klasse ( this
) als Variable hinzu und greifen Sie von Ihrem Ruby-Code darauf zu:
Und dann von Ruby:
%Vor%Um die Demo-Klasse innerhalb des Ruby-Codes verfügbar zu haben, damit Sie sie initialisieren können (Demo.new), müssen Sie die Assembly von IronRuby "auffindbar" machen. Wenn sich die Assembly nicht im GAC befindet, fügen Sie das Assembly-Verzeichnis den Suchpfaden von IronRuby hinzu:
%Vor% Dann können Sie in Ihrem IronRuby-Code die Assembly anfordern, zum Beispiel: require "DemoAssembly.dll"
und dann verwenden Sie sie einfach wie Sie wollen.
Tags und Links ruby .net c# ironruby scripting-interface