Ivan Porto Carrero
2008-Apr-05 23:00 UTC
[Ironruby-core] Reading files in Dynamic Silverlight
Hi I can''t work out how I can read external xaml files from Silverlight with IronRuby. I''ve tried to use System::IO::File and StreamReader but both give me a MethodAccessException. How would I accomplish reading a xaml file in the xap with IronRuby and Silverlight. I would like to create a user control and load that into my main app. System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream( "story_details_view.xaml") _root = this.InitializeFromXaml(new System.IO.StreamReader(s).ReadToEnd()) as UserControl; I would also like to try to read an external xaml file for skinning purposes. Is that possible at this moment? Cheers Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/ironruby-core/attachments/20080406/5b6d5e46/attachment.html
Ivan Porto Carrero wrote:> Hi > > I can''t work out how I can read external xaml files from Silverlight > with IronRuby. > I''ve tried to use System::IO::File and StreamReader but both give me a > MethodAccessException. > > How would I accomplish reading a xaml file in the xap with IronRuby > and Silverlight. > > I would like to create a user control and load that into my main app. > > System.IO.Stream s = > this.GetType().Assembly.GetManifestResourceStream("story_details_view.xaml") > > > _root = this.InitializeFromXaml(new > System.IO.StreamReader(s).ReadToEnd()) as UserControl; > > > I would also like to try to read an external xaml file for skinning > purposes. > Is that possible at this moment? >In IronPython you just use the ordinary ''file'' type to open a file that is in the ''xap'' file as if it was a local resource. You may find that something similar is available in IronRuby. Michael Foord http://www.ironpythoninaction.com> Cheers > Ivan > ------------------------------------------------------------------------ > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core at rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core >
Michael Foord:> In IronPython you just use the ordinary ''file'' type to open a file that > is in the ''xap'' file as if it was a local resource. You may find that > something similar is available in IronRuby.I added this feature to IronPython to support the Peter Norvig spell check demo that we used at MIX. I haven''t gotten around to adding that functionality to IronRuby yet - it''s on the list of things to do. Thanks, -John
It''s not currently supported in IronRuby file IO, but here''s a
workaround (I haven''t tried this code in real, so it may not work :).
include Microsoft::Scripting::Silverlight
runtime = DynamicApplication::Environment
stream =
runtime.host.platform_adaptation_layer.open_input_file_stream("story_details_view.xaml")
stream is instance of the Stream class.
Tomas
-----Original Message-----
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Michael Foord
Sent: Saturday, April 05, 2008 4:09 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Reading files in Dynamic Silverlight
Ivan Porto Carrero wrote:> Hi
>
> I can''t work out how I can read external xaml files from
Silverlight
> with IronRuby.
> I''ve tried to use System::IO::File and StreamReader but both give
me a
> MethodAccessException.
>
> How would I accomplish reading a xaml file in the xap with IronRuby
> and Silverlight.
>
> I would like to create a user control and load that into my main app.
>
> System.IO.Stream s >
this.GetType().Assembly.GetManifestResourceStream("story_details_view.xaml")
>
>
> _root = this.InitializeFromXaml(new
> System.IO.StreamReader(s).ReadToEnd()) as UserControl;
>
>
> I would also like to try to read an external xaml file for skinning
> purposes.
> Is that possible at this moment?
>
In IronPython you just use the ordinary ''file'' type to open a
file that
is in the ''xap'' file as if it was a local resource. You may
find that
something similar is available in IronRuby.
Michael Foord
http://www.ironpythoninaction.com
> Cheers
> Ivan
> ------------------------------------------------------------------------
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core
Ivan Porto Carrero:> I can''t work out how I can read external xaml files from Silverlight > with IronRuby. > I''ve tried to use System::IO::File and StreamReader but both give me a > MethodAccessException. > > How would I accomplish reading a xaml file in the xap with IronRuby > and Silverlight. > > I would like to create a user control and load that into my main app. > > System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("story_details_view.xaml") > > _root = this.InitializeFromXaml(new > System.IO.StreamReader(s).ReadToEnd()) as UserControl;I''m not sure why the above C# code wouldn''t "just work". Which method call throws MethodAccessException? The only thing that looks odd is the GetManifestResourceStream. The way I''ve done it is: s = System.Windows.Application.Current.GetResourceStream(new Uri("story_details_view.xaml", UriKind.Relative));> I would also like to try to read an external xaml file for skinning > purposes. > Is that possible at this moment?Sure, just use the normal Silverlight downloading APIs. Check out the WebClient and HttpWebRequest classes. - John