<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetmarche.org/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>Search results matching tags 'mobile', 'wcf', and 'design'</title><link>http://dotnetmarche.org/search/SearchResults.aspx?o=DateDescending&amp;tag=mobile,wcf,design&amp;orTags=0</link><description>Search results matching tags 'mobile', 'wcf', and 'design'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Estrazione delle embedded resources su file system</title><link>http://dotnetmarche.org/blogs/andreabalducci/archive/2008/10/08/estrazione-delle-embedded-resources-su-disco.aspx</link><pubDate>Wed, 08 Oct 2008 07:37:07 GMT</pubDate><guid isPermaLink="false">61321887-5500-4417-8b9e-633d632ef265:4214</guid><dc:creator>andrea.balducci</dc:creator><description>&lt;p&gt;Per la realizzazione di un progetto ho incluso come embedded resources diversi file (report, immagini, xml, etc...) in modo da semplificare il deploy. Per lasciare comunque la possibilità di customizzare l&amp;#39;installazione ho creato questa classe helper che permette di fare il dump della risorsa embedded su file system. Il codice che accede alla risorsa chiama sempre la EnsureFileSystemCopy poi accede tramite file system. In questo modo chi installa / assiste ha libertà di azione.&lt;/p&gt; &lt;p&gt;In caso di &amp;quot;disastro&amp;quot; basta svuotare la cartella di dump delle risorse per tornare alla situazione originale.&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:C411E4BC-FA5A-4068-9F25-1AA2B5A98D76:094fa2ce-a69a-4d5f-aaf0-f8d4b25abcc0" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;div style="display:block;margin:2px;background-color:#F7F7FF;border:solid 1px gray;"&gt;&lt;table&gt; 	&lt;tr&gt; 		&lt;td&gt;1.&lt;/td&gt; 		&lt;td&gt;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; System;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;2.&lt;/td&gt; 		&lt;td&gt;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; System.IO;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;3.&lt;/td&gt; 		&lt;td&gt;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; System.Reflection;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;4.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;5.&lt;/td&gt; 		&lt;td&gt;&lt;span style="color:#0000FF;"&gt;namespace&lt;/span&gt; Prxm.Pass.Framework.Helpers&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;6.&lt;/td&gt; 		&lt;td&gt;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;7.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;static&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;class&lt;/span&gt; EmbeddedResourcesHelper&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;8.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;9.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;static&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;void&lt;/span&gt; EnsureFileSystemCopy(Assembly assembly, &lt;span style="color:#0000FF;"&gt;string&lt;/span&gt; resourceName, &lt;span style="color:#0000FF;"&gt;string&lt;/span&gt; filename)&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;10.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;11.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt; (File.Exists(filename))&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;12.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;13.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;14.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt; folder = Path.GetDirectoryName(filename);&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;15.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt; (!Directory.Exists(folder))&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;16.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Directory.CreateDirectory(folder);&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;17.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;18.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; (var stream = assembly.GetManifestResourceStream(resourceName))&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;19.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;20.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt; (&lt;span style="color:#0000FF;"&gt;null&lt;/span&gt; == stream)&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;21.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000FF;"&gt;new&lt;/span&gt; Exception(&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;.Format(&amp;quot;&lt;span style="color:#8B0000;"&gt;Cannot find resource {0} in assembly {1}&lt;/span&gt;&amp;quot;, resourceName,&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;22.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  assembly.FullName));&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;23.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;24.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; (var reader = &lt;span style="color:#0000FF;"&gt;new&lt;/span&gt; BinaryReader(stream))&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;25.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;26.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt; (var writer = &lt;span style="color:#0000FF;"&gt;new&lt;/span&gt; BinaryWriter(File.Create(filename)))&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;27.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;28.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;byte&lt;/span&gt;[] buffer;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;29.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000FF;"&gt;while&lt;/span&gt;((buffer = reader.ReadBytes(1024)).Length &amp;gt; 0)&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;30.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer.Write(buffer);&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;31.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;32.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer.Flush();&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;33.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;34.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;35.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;36.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;37.&lt;/td&gt; 		&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;38.&lt;/td&gt; 		&lt;td&gt;}&lt;/td&gt; 	&lt;/tr&gt; 	&lt;tr&gt; 		&lt;td&gt;39.&lt;/td&gt; 		&lt;td&gt;&lt;/td&gt; 	&lt;/tr&gt; &lt;/table&gt; &lt;/div&gt;&lt;/div&gt;&lt;/p&gt;</description></item></channel></rss>