Jorg, It is a good idea, but I have tried this already, and it still fails. By re-defining the method after attr_accessor, you blow away whatever magic happens that causes it to be a property at interop time.
Unless... you are suggesting that this is how it SHOULD work. I think either approach makes sense. A special interop class method is nice because it is explicit. Having method redefinition do the job is nice because it doesn't require a special class method :) What does everyone else think? If I get the time, I was planning on getting my hands in the code and trying to implement it. Thanks, Brian 2010/7/23 Jörg W Mittag <joergwmittag+r...@googlemail.com<joergwmittag%2br...@googlemail.com> > > Brian Genisio wrote: > > Thinking on this further, if there were some sort of interop-specific > class > > method... like attr_clr_property :foo, that caused any methods named foo > and > > foo=(var) to be visible to .Net as properties, that would be sufficient. > > > > Any thoughts on this? > > Alternative suggestion: make method redefinition work in this case, > like this: > > var engine = IronRuby.Ruby.CreateEngine(); > var script = @" > class Test > attr_accessor :a, :m > > def m; @m end > def m=(val) @m = val end > > def initialize; @a, @m = 'automatic', 'manual' end > end > > Test.new > "; > var testObject = engine.Execute(script); > > var automatic = testObject.a; > var manual = testObject.m; > > Console.WriteLine(automatic); > Console.WriteLine(manual); // should print "manual" > Console.ReadLine(); > > jwm > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core >
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core