You can monkey-patch the Silverlight classes you're using to do the 
to_clr_string for you. For example HtmlDocument#GetElementById requires you 
pass it a ClrString, which can be annoying from IronRuby. So, you can make it 
take a Ruby string or symbol like this:

module System::Windows::Browser
  class HtmlDocument
    alias_method orig_get_element_by_id, get_element_by_id
    def get_element_by_id(id)
      orig_get_element_by_id(id.to_s.to_clr_string)
    end
  end
end

# usage
include System::Windows:Browser
element = HtmlPage.document.get_element_by_id(:foo)

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Sean Clark Hess
Sent: Friday, August 15, 2008 9:48 AM
To: [email protected]
Subject: Re: [Ironruby-core] Stupid to_clr_string

Makes sense.
On Fri, Aug 15, 2008 at 10:44 AM, Curt Hagenlocher <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:

The binder could automatically create a conversion - in effect, calling 
to_clr_string for you automatically.  But it might be a little strange for the 
binder to do that automatically in one direction and not the other - which is 
why I said that there needs to be a plan before we make any changes.



From: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> [mailto:[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>] On Behalf Of Sean Clark Hess
Sent: Friday, August 15, 2008 9:39 AM

To: [email protected]<mailto:[email protected]>
Subject: Re: [Ironruby-core] Stupid to_clr_string



Ah, makes sense.  I'm totally unfamiliar with the way IronRuby is implemented. 
Is it possible to switch it to a clr string any time it calls any framework 
code? (like the invoke function I'm using).



~sean

On Fri, Aug 15, 2008 at 10:33 AM, Curt Hagenlocher <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:

This isn't a Silverlight issue but an IronRuby one.  A Ruby string simply isn't 
the same as a CLR string - the Ruby string is mutable while the CLR string is 
not.



We need to come up with a cohesive plan for dealing with the difference before 
we can "fix" anything.



From: [EMAIL PROTECTED]<mailto:[EMAIL PROTECTED]> [mailto:[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>] On Behalf Of Sean Clark Hess
Sent: Friday, August 15, 2008 9:25 AM
To: [email protected]<mailto:[email protected]>
Subject: [Ironruby-core] Stupid to_clr_string



Ok, I keep running into this over and over.  Whenever Silverlight passes a 
string to javascript, it comes out as some unreadable object.  You have to call 
to_clr_string to get it working.



This is ok... You can monkey patch some of the javascript library code to fix 
it, but with HtmlPage.window.invoke, for example, it's not easy to do because 
it sends a variable number of arguments.



Is this being fixed? Or is this something we're going to have to deal with for 
a while?



Thanks

~sean

_______________________________________________
Ironruby-core mailing list
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core



_______________________________________________
Ironruby-core mailing list
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to