[Ironruby-core] Why does attr_accessor create a property, but method is just a method?
briangenisio at gmail.com
Thu Jul 22 08:49:20 EDT 2010
So, I haven't heard anything about this yet on Stack Overflow, or this list.
Does anyone know if this is this a bug in IronRuby interop?
On Wed, Jul 21, 2010 at 12:34 PM, Brian Genisio <briangenisio at gmail.com>wrote:
> This is a cross-post from Stack Overflow, but I haven't heard a peep there,
> so I figured I'd try here:
> I am playing around with the interop between C# and IronRuby. I have
> noticed that if I define a property in Ruby using `attr_accessor`, it is
> presented to C# as a property. If, on the other hand, I create the exact
> same code manually, it comes back as a method.
> For example, take this code:
> var engine = IronRuby.Ruby.CreateEngine();
> string script = @"
> class Test
> attr_accessor :automatic
> def manual
> def manual=(val)
> @manual = val
> def initialize
> @automatic = ""testing""
> @manual = ""testing""
> var testObject = engine.Execute(script);
> var automatic = testObject.automatic;
> var manual = testObject.manual;
> When you look at the C# `automatic` variable, the value is a string of
> "testing". If you look at the C# `manual` variable, it is type
> Ultimately, I want to create my own properties in Ruby that can be used in
> C#, but I can't seem to make them be visible as properties like
> `attr_accessor` does.
> I THINK, that there is some magic going on in the Module code of the Ruby
> source code (ModuleOps.cs:DefineAccessor). Is there any way to do this in
> Ruby code directly?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Ironruby-core