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