Вы не можете скомпилировать свои классы IronRuby в сборку .NET, а затем получить к ним доступ из другой сборки.
Преет прав, что самое близкое, что вы можете получить, это встроить ваши сценарии IronRuby, скажем,C # сборка.Со стороны C # тогда можно будет создавать экземпляры ваших классов Ruby.Поэтому, учитывая следующий класс Ruby:
class HelloWorld
def say_hello
puts 'Hello'
end
end
Вы можете загрузить его из файла ресурсов и запустить из C #:
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Runtime;
using IronRuby;
var runtime = IronRuby.Ruby.CreateRuntime();
var engine = runtime.GetEngine("ruby");
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("PathToResource.test.rb");
string code = new StreamReader(stream).ReadToEnd();
var scope = engine.CreateScope();
engine.Execute(code, scope);
dynamic helloWorldClass = engine.Runtime.Globals.GetVariable("HelloWorld");
dynamic ironRubyObject = engine.Operations.CreateInstance(helloWorldClass);
ironRubyObject.say_hello();