This seems to work
//C# assembly referencing the Ruby.NET.Runtime assembly
namespace Inspect
{
public class Access
{
public static Ruby.Class getRubyPerson()
{
ClassLibrary2.nested.Person p = new ClassLibrary2.nested.Person("", 0);
return Ruby.Class.CLASS_OF(p);
}
}
}## Ruby x = Inspect::Access.getRubyPerson() fred = x.new(name, age) fred.print
It's a pity that I need an object and cannot just send a System.Type into Interop.CLRClass.Load(type, null, false);, which this ends up doing, but that method is internal to the Runtime DLL.
It should be possible, though, to have a require_jsharp('assembly.dll') that does the tedious running around back and forth through the Ruby/C# boundary in an anutmated fashion, and creates appropriate proxies for lowercase package-names in a tree-like object.


No comments:
Post a Comment