<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.silverlight.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Passing Parameters Into Silverlight Applications</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx</link><description>I was working on a chapter about the Application Model for our forthcoming book and reviewed the examples on passing parameters into Silverlight applications. I thought, &amp;quot;Hey! That would make a great video!&amp;quot;&amp;#160; And it does, but Tim already</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Passing Parameters Into Silverlight Applications &amp;#8211; Jesse Liberty &amp;#8230; &amp;laquo; work4real.net</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#289010</link><pubDate>Thu, 17 Sep 2009 14:34:28 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:289010</guid><dc:creator>Passing Parameters Into Silverlight Applications – Jesse Liberty … « work4real.net</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Passing Parameters Into Silverlight Applications &amp;amp;#8211; Jesse Liberty &amp;amp;#8230; &amp;amp;laquo; work4real.net&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=289010" width="1" height="1"&gt;</description></item><item><title>re: Passing Parameters Into Silverlight Applications</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#272146</link><pubDate>Wed, 19 Aug 2009 16:04:30 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:272146</guid><dc:creator>ShadowOfTheBeast</dc:creator><description>&lt;p&gt;Hi Jesse,&lt;/p&gt;
&lt;p&gt;Fantastic tutorial as always! can you please do one of the reverse please.&lt;/p&gt;
&lt;p&gt;that is passing parameters from a silverlight app to the hosting aspnet page or any other aspnet page within the hosting project.&lt;/p&gt;
&lt;p&gt;cheers&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=272146" width="1" height="1"&gt;</description></item><item><title>Passing Parameters into Silverlight at Programming with Silverlight, WPF &amp;amp; .NET</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#153447</link><pubDate>Mon, 29 Dec 2008 12:11:09 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:153447</guid><dc:creator>Passing Parameters into Silverlight at Programming with Silverlight, WPF &amp; .NET</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Passing Parameters into Silverlight at Programming with Silverlight, WPF &amp;amp;amp; .NET&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=153447" width="1" height="1"&gt;</description></item><item><title>re: Passing Parameters Into Silverlight Applications</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#153430</link><pubDate>Mon, 29 Dec 2008 10:59:30 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:153430</guid><dc:creator>SMusician</dc:creator><description>&lt;p&gt;Thank you for the post. Let me show another interesting solution.&lt;/p&gt;
&lt;p&gt;We know we could use so many parameters as we needed. It would be great if we will not use extra code for each parameter and all our parameters will be optional.&lt;/p&gt;
&lt;p&gt;To make each parameter to be human-readable I use JS object.&lt;/p&gt;
&lt;p&gt;[code for=&amp;quot;TestPage.html&amp;quot;]&lt;/p&gt;
&lt;p&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;var SLSettings =&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Text: &amp;quot;Our text&amp;quot;,&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Number: 200&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;object id=&amp;quot;SLObj1&amp;quot; ...&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;param name=&amp;quot;initParams&amp;quot; value=&amp;quot;Settings=SLSettings&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;&amp;lt;/object&amp;gt;&lt;/p&gt;
&lt;p&gt;[/code]&lt;/p&gt;
&lt;p&gt;The simple way to implement our parameters is using properties of our Silverlight object.&lt;/p&gt;
&lt;p&gt;[code for=&amp;quot;Page.xaml.cs&amp;quot;]&lt;/p&gt;
&lt;p&gt;public partial class Page : UserControl&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;[ScriptableMember]&lt;/p&gt;
&lt;p&gt; &amp;nbsp;public string Text { get; set; }&lt;/p&gt;
&lt;p&gt; &amp;nbsp;[ScriptableMember]&lt;/p&gt;
&lt;p&gt; &amp;nbsp;public int Number { get; set; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;[/code]&lt;/p&gt;
&lt;p&gt;Well, we'll just use reflection to initialize our parameters.&lt;/p&gt;
&lt;p&gt;[code for=&amp;quot;App.xaml.cs&amp;quot;]&lt;/p&gt;
&lt;p&gt;public partial class App : Application&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;private void Application_Startup(object sender, StartupEventArgs e)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;Page page = new Page();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;if (e.InitParams.ContainsKey(&amp;quot;Settings&amp;quot;))&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;string SettingsObjectName = e.InitParams[&amp;quot;Settings&amp;quot;];&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.Windows.Browser.ScriptObject SettingsObject = (System.Windows.Browser.ScriptObject)System.Windows.Browser.HtmlPage.Window.GetProperty(SettingsObjectName);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (SettingsObject != null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PropertyInfo[] properties = page.GetType().GetProperties(BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;foreach (PropertyInfo property in properties)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (Attribute.GetCustomAttribute(property, typeof(ScriptableMemberAttribute)) == null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;continue;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;object s = SettingsObject.GetProperty(property.Name);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (s != null)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;property.SetValue(page, s, null);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;HtmlPage.RegisterScriptableObject(&amp;quot;SLApplication&amp;quot;, page);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;this.RootVisual = page;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;[/code]&lt;/p&gt;
&lt;p&gt;Voila!&lt;/p&gt;
&lt;p&gt;1. We could pass parameters before initialization.&lt;/p&gt;
&lt;p&gt;2. We could set up each parameter after initialization through JavaScript, e.g.:&lt;/p&gt;
&lt;p&gt;[code]&lt;/p&gt;
&lt;p&gt;SLObj1.content.SLApplication.Text = &amp;quot;New Text&amp;quot;;&lt;/p&gt;
&lt;p&gt;[/code]&lt;/p&gt;
&lt;p&gt;3. No extra code! We have ability to add unlimited number of simple typed properties with just attribute &amp;quot;ScriptableMember&amp;quot; to our Page class.&lt;/p&gt;
&lt;p&gt;4. All parameters are optional.&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=153430" width="1" height="1"&gt;</description></item><item><title>#.think.in infoDose #13 (22nd Dec - 26th Dec)</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#153269</link><pubDate>Mon, 29 Dec 2008 01:19:49 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:153269</guid><dc:creator>#.think.in</dc:creator><description>&lt;p&gt;#.think.in infoDose #13 (22nd Dec - 26th Dec)&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=153269" width="1" height="1"&gt;</description></item><item><title>Silverlight Cream for December 27, 2008 -- #468</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#153115</link><pubDate>Sun, 28 Dec 2008 06:56:50 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:153115</guid><dc:creator>Community Blogs</dc:creator><description>&lt;p&gt;In this issue: Al Pascual, Damon Payne, Laurent Bugnion, Shawn Wildermuth, Jesse Liberty, and Jobi Joy&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=153115" width="1" height="1"&gt;</description></item><item><title>Passing Parameters Into Silverlight Applications </title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#152856</link><pubDate>Fri, 26 Dec 2008 23:54:13 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:152856</guid><dc:creator>DotNetKicks.com</dc:creator><description>&lt;p&gt;You've been kicked (a good thing) - Trackback from DotNetKicks.com&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=152856" width="1" height="1"&gt;</description></item><item><title>Dew Drop - December 26, 2008 | Alvin Ashcraft's Morning Dew</title><link>http://blogs.silverlight.net/blogs/jesseliberty/archive/2008/12/26/passing-parameters-into-silverlight-applications.aspx#152846</link><pubDate>Fri, 26 Dec 2008 23:14:18 GMT</pubDate><guid isPermaLink="false">d0d632c8-a6f7-4f68-b0ce-26aaafd62132:152846</guid><dc:creator>Dew Drop - December 26, 2008 | Alvin Ashcraft's Morning Dew</dc:creator><description>&lt;p&gt;Pingback from &amp;nbsp;Dew Drop - December 26, 2008 | Alvin Ashcraft's Morning Dew&lt;/p&gt;
&lt;img src="http://blogs.silverlight.net/aggbug.aspx?PostID=152846" width="1" height="1"&gt;</description></item></channel></rss>