I was freezing a live instance of a custom .NET class and half expecting
property setters to become immutable, but I can imagine that would be
pretty hard to implement. I do have a related question though - I would
like to provide a read-only copy of some custom .NET DTO's to a ruby
script - my thinking was to inherit an adapter from DynamicObject and
provide no-op implementation for all by TryGetMember - which is easy
enough to do via reflection, but is there an easy way to tap into the
DLR's capability of doing this in a name-mangling way - i.e. a way to
implement TryGetMember that somehow re-uses what the DLR is doing behind
the scenes when integrating with a native .NET object?

 

From: ironruby-core-boun...@rubyforge.org
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Tomas Matousek
Sent: Wednesday, December 09, 2009 2:06 PM
To: ironruby-core@rubyforge.org
Subject: Re: [Ironruby-core] Frozen .NET objects

 

It has an effect:

 

>>> System::Collections::ArrayList.freeze

=> System::Collections::ArrayList

>>> class System::Collections::ArrayList

...   def foo

...   end

... end

:0: can't modify frozen class (TypeError)

 

Is there another effect you expect?

 

Tomas

 

From: ironruby-core-boun...@rubyforge.org
[mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Nathan Stults
Sent: Wednesday, December 09, 2009 12:47 PM
To: ironruby-core@rubyforge.org
Subject: [Ironruby-core] Frozen .NET objects

 

I've noticed calling .freeze on a native .NET class does not have any
effect (other than making #frozen? Return true)

 

Is this by design?

 

Thanks,

 

Nathan 

 

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to