<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>El blog de Javier Torrecilla : WinRT, Async, BASICO</title><link>http://geeks.ms/blogs/jtorrecilla/archive/tags/WinRT/Async/BASICO/default.aspx</link><description>Etiquetas: WinRT, Async, BASICO</description><dc:language /><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>[Tip] Constructores estáticos para tus ViewModels [WIN8]</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2013/02/07/tip-constructores-est-225-ticos-para-tus-viewmodels-win8.aspx</link><pubDate>Thu, 07 Feb 2013 07:12:02 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:208508</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=208508</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2013/02/07/tip-constructores-est-225-ticos-para-tus-viewmodels-win8.aspx#comments</comments><description>&lt;p&gt;Aunque ya he hablado en alguna ocasión de esta característica, una de las grandes novedades de .NET 4.5 es la introducción de Async y Await para “facilitar” la escritura de código que tiene que ejecutarse de forma asíncrona.&lt;/p&gt;  &lt;p&gt;Para el desarrollo de aplicaciones para la Store de Windows 8, es una de las cosas mas importantes que hay que tener en cuenta, y de hecho gran parte de la funcionalidad de la API del propio WINRT ya es asíncrona lo que nos facilita mucho la vida.&lt;/p&gt;  &lt;p&gt;En este post, quiero hablaros de una cosa que es bastante importe a la hora de hacer nuestros desarrollos. &lt;/p&gt;  &lt;p&gt;Bien, ni los constructores de una clase ni las propiedades pueden ser “calificados” como asíncronos. &lt;/p&gt;  &lt;p&gt;Centrándonos en el apartado del constructor, probablemente nos gustaría invocar a algún método asíncrono para por ejemplo llenar una lista de elementos que se van a mostrar en pantalla. Bien, mi recomendación para subsanar esto, es la definición de un método estático al que calificaremos como “async” y dentro de dicho método invocaremos al constructor de nuestra clase, y a las acciones asíncronas de la misma. Para ilustrar esto os expongo un pequeño ejemplo:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MyViewModel : baseViewModel&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;     &lt;span class="kwrd"&gt;public&lt;/span&gt; MyViewModel()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;   &lt;span class="kwrd"&gt;private&lt;/span&gt; async Task LongTask()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;  {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;       await Task.Delay(10);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;   } &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;   &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; async Task&amp;lt;MyViewModel&amp;gt; Create()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;   {&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        var vm = &lt;span class="kwrd"&gt;new&lt;/span&gt; MyViewModel();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        await vm.LongTask();&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;        &lt;span class="kwrd"&gt;return&lt;/span&gt; vm;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;   }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;¿Cómo lo asignamos al contexto de nuestra vista?&lt;/p&gt;

&lt;p&gt;Vamos a utilizar el método OnNavigatedTo:&lt;/p&gt;

&lt;pre class="csharpcode"&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; async &lt;span class="kwrd"&gt;void&lt;/span&gt; OnNavigatedTo(NavigationEventArgs e)
        {
            &lt;span class="kwrd"&gt;this&lt;/span&gt;.DataContext= await MyViewModel.Create();
        }&lt;/pre&gt;


&lt;p&gt;Espero que os resulte de utilidad.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=208508" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/BASICO/default.aspx">BASICO</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVVM/default.aspx">MVVM</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Async/default.aspx">Async</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Await/default.aspx">Await</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/c_2300_4.5/default.aspx">c#4.5</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/WinRT/default.aspx">WinRT</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Win8/default.aspx">Win8</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS2012/default.aspx">VS2012</category></item><item><title>Materiales: Workshop Mobile Service (2) y Libro</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/12/20/materiales-workshop-mobile-service-2-y-libro.aspx</link><pubDate>Thu, 20 Dec 2012 06:59:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:207858</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=207858</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/12/20/materiales-workshop-mobile-service-2-y-libro.aspx#comments</comments><description>&lt;p&gt;Despu&amp;eacute;s del Workshop en el que participe el otro d&amp;iacute;a, me pidieron que subiera el resultado de los laboratorios al blog ver el resultado de los mismos.&lt;/p&gt;
&lt;p&gt;Os dejo un zip en mi &lt;a href="http://sdrv.ms/ZkFdcR"&gt;skydrive&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Este ZIP contiene una soluci&amp;oacute;n de VS2012 con los siguientes proyectos:&lt;/p&gt;
&lt;p&gt;- Model: Clases de Modelo (Entry), una interfaz IRepository&amp;lt;T&amp;gt; y 2 implementaciones de dicha clase: una para trabajar con XML y otra para tratar con MobileService.&lt;/p&gt;
&lt;p&gt;- ViewModel: Contiene las clases vmBase, DelegateCommand, DelegateCommand&amp;lt;T&amp;gt; y el ViewModel que se va a utilizar en los otros proyectos.&lt;/p&gt;
&lt;p&gt;- Lab1UI: Esta es la UI que utiliza XML.&lt;/p&gt;
&lt;p&gt;- Lab2UI: Esta utiliza Mobile: NOTA: para el servicio tendr&amp;eacute;is que poner el servicio que teng&amp;aacute;is definido en vuestra cuenta de Windows Azure. NOTA 2: No he puesto el tema de notificaciones y autenticaci&amp;oacute;n, pero si ten&amp;eacute;is cualquier duda pod&amp;eacute;is hac&amp;eacute;rmela llegar.&lt;/p&gt;
&lt;p&gt;Tambi&amp;eacute;n os comentaba acerca de los libros de una editorial con la que colabora de vez en cuando es &lt;a href="http://www.ediciones-eni.com/"&gt;Ediciones ENI&lt;/a&gt;. Tienen un libro interesante titulo &amp;ldquo;C# 4.0 Los fundamentos del lenguaje&amp;rdquo; y dentro de no demasiado estar&amp;aacute; disponible la versi&amp;oacute;n 5.0 (actualmente est&amp;aacute; en franc&amp;eacute;s).&lt;/p&gt;
&lt;p&gt;Si est&amp;aacute;is interesados en alguno de sus libros avisadme tambi&amp;eacute;n.&lt;/p&gt;
&lt;p&gt;Espero que os sea de utilidad.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=207858" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/BASICO/default.aspx">BASICO</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/MVVM/default.aspx">MVVM</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Async/default.aspx">Async</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Await/default.aspx">Await</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/c_2300_4.5/default.aspx">c#4.5</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/WinRT/default.aspx">WinRT</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Win8/default.aspx">Win8</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS2012/default.aspx">VS2012</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Azure/default.aspx">Azure</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/ENI/default.aspx">ENI</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Libros/default.aspx">Libros</category></item><item><title>[WinRT] Añadiendo algo de funcionalidad básica  a la API.</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/11/26/winrt-a-241-adiendo-algo-de-funcionalidad-b-225-sica-a-la-api.aspx</link><pubDate>Mon, 26 Nov 2012 10:15:31 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:207546</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=207546</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/11/26/winrt-a-241-adiendo-algo-de-funcionalidad-b-225-sica-a-la-api.aspx#comments</comments><description>&lt;h1&gt;Introducción&lt;/h1&gt;  &lt;p&gt;Como me imagino que todos sabréis ya ha salido hace algún tiempo Windows 8, y la programación para él es relativamente distinta que para el resto de aplciaciones “tradicionales”.&lt;/p&gt;  &lt;p&gt;Aunque ya llevo un tiempo trabajando con Windows 8 como sistema operativo, y con WINRT desarrollando aplicaciones para él, se siguen echando en falta algunas cosas en las APIS que nos proveen dentro del nuevo Framework.&lt;/p&gt;  &lt;p&gt;En este post voy a exponer dos métodos interesantes para la API de manejo de ficheros.&lt;/p&gt;  &lt;h1&gt;Código&lt;/h1&gt;  &lt;p&gt;Dentro de mi proyecto, he definido una clase estática en la que he agregado dos métodos &lt;a href="http://geeks.ms/blogs/jtorrecilla/archive/2011/01/11/tip-rapido-m-233-todo-extensor.aspx"&gt;extensores&lt;/a&gt; para los elementos que implementen la interfaz IStorageFolder`:&lt;/p&gt;  &lt;p&gt;- El primero de ellos será para mover todo el contenido de un directorio.&lt;/p&gt;  &lt;p&gt;- El segundo será para copiar todo el contenido de un directorio.&lt;/p&gt;  &lt;div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-right:silver 1px solid;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;width:97.5%;background-color:#f4f4f4;"&gt;   &lt;div id="codeSnippet" style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;     &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; Task CopyFolderAsync(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; IStorageFolder folder, IStorageFolder destinationFolder)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt;       {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum4" style="color:#606060;"&gt;   4:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (destinationFolder == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum5" style="color:#606060;"&gt;   5:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color:#006080;"&gt;&amp;quot;Destination Folder can&amp;#39;t be null&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum6" style="color:#606060;"&gt;   6:&lt;/span&gt;           var destFolder = await destinationFolder.CreateFolderAsync(folder.Name);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum7" style="color:#606060;"&gt;   7:&lt;/span&gt;           var files = await folder.GetFilesAsync();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum8" style="color:#606060;"&gt;   8:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var file &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; files)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum9" style="color:#606060;"&gt;   9:&lt;/span&gt;           {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum10" style="color:#606060;"&gt;  10:&lt;/span&gt;               await file.CopyAsync(destFolder);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum11" style="color:#606060;"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum12" style="color:#606060;"&gt;  12:&lt;/span&gt;           }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum13" style="color:#606060;"&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum14" style="color:#606060;"&gt;  14:&lt;/span&gt;       }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum15" style="color:#606060;"&gt;  15:&lt;/span&gt;       &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; async &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; Task&amp;lt;IStorageFolder&amp;gt; MoveFolderAsync(&lt;span style="color:#0000ff;"&gt;this&lt;/span&gt; IStorageFolder folder, IStorageFolder destinationFolder)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum16" style="color:#606060;"&gt;  16:&lt;/span&gt;       {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum17" style="color:#606060;"&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum18" style="color:#606060;"&gt;  18:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (destinationFolder == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum19" style="color:#606060;"&gt;  19:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color:#006080;"&gt;&amp;quot;Destination Folder can&amp;#39;t be null&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum20" style="color:#606060;"&gt;  20:&lt;/span&gt;           var destFolder = await destinationFolder.CreateFolderAsync(folder.Name);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum21" style="color:#606060;"&gt;  21:&lt;/span&gt;           var items = await folder.GetItemsAsync();&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum22" style="color:#606060;"&gt;  22:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (var item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; items)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum23" style="color:#606060;"&gt;  23:&lt;/span&gt;           {&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum24" style="color:#606060;"&gt;  24:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (item &lt;span style="color:#0000ff;"&gt;is&lt;/span&gt; StorageFile)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum25" style="color:#606060;"&gt;  25:&lt;/span&gt;                   await ((StorageFile)item).CopyAsync(destFolder);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum26" style="color:#606060;"&gt;  26:&lt;/span&gt;               &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (item &lt;span style="color:#0000ff;"&gt;is&lt;/span&gt; StorageFolder)&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum27" style="color:#606060;"&gt;  27:&lt;/span&gt;                   await ((StorageFolder)item).CopyFolderAsync(destFolder);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum28" style="color:#606060;"&gt;  28:&lt;/span&gt;           }&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum29" style="color:#606060;"&gt;  29:&lt;/span&gt;           await folder.DeleteAsync(StorageDeleteOption.PermanentDelete);&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:#f4f4f4;"&gt;&lt;span id="lnum30" style="color:#606060;"&gt;  30:&lt;/span&gt;           &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; destFolder;&lt;/pre&gt;


    &lt;pre style="border-top-style:none;overflow:visible;font-size:8pt;border-left-style:none;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;width:100%;background-color:white;"&gt;&lt;span id="lnum31" style="color:#606060;"&gt;  31:&lt;/span&gt;       }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Espero que os resulte de utilidad, y que estéis haciendo cosas ya para Windows8!!!&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=207546" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/BASICO/default.aspx">BASICO</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Async/default.aspx">Async</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Await/default.aspx">Await</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/WinRT/default.aspx">WinRT</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Win8/default.aspx">Win8</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/VS2012/default.aspx">VS2012</category></item><item><title>Win8: Serializar y Deserializar con WinRT C#</title><link>http://geeks.ms/blogs/jtorrecilla/archive/2012/04/23/win8-serializar-y-deserializar-con-winrt-c.aspx</link><pubDate>Mon, 23 Apr 2012 10:49:19 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:204598</guid><dc:creator>Javier Torrecilla</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/jtorrecilla/rsscomments.aspx?PostID=204598</wfw:commentRss><comments>http://geeks.ms/blogs/jtorrecilla/archive/2012/04/23/win8-serializar-y-deserializar-con-winrt-c.aspx#comments</comments><description>&lt;h4&gt;Introducción&lt;/h4&gt;  &lt;p&gt;En este breve post vamos a ver como llevar a cabo la serialización de objetos dentro de una aplicación metro con WinRT y C#.&lt;/p&gt;  &lt;h4&gt;Código&lt;/h4&gt;  &lt;p&gt;Partiendo de una clase tipo:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Employee&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; Id { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; FirstName { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; LastName { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; DateTime BirthDate { get; set; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Serializando un objeto:&lt;/u&gt;&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; Employee obj;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (var fileStream = await ApplicationData.Current.RoamingFolder.OpenStreamForWriteAsync(String.Format(&lt;span style="color:#006080;"&gt;&amp;quot;ci{0}{1}.xml&amp;quot;&lt;/span&gt;,&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;  obj.LastName, obj.FirstName), &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;                     CreationCollisionOption.ReplaceExisting))&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;                 {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;                     var serializer = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(ChildInfo));&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;                     serializer.Serialize(fileStream, obj);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;                 }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Deserializando un objeto:&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; Employee obj;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; sing(var fileStream = await ApplicationData.Current.RoamingFolder.OpenStreamForReadAsync(root))&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;    XmlSerializer serializer=&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(Employee));&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;    obj = (Employee)serializer.Deserialize(fileStream);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Espero que os sirva.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Saludos!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=204598" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/BASICO/default.aspx">BASICO</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Async/default.aspx">Async</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Await/default.aspx">Await</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/c_2300_4.5/default.aspx">c#4.5</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/WinRT/default.aspx">WinRT</category><category domain="http://geeks.ms/blogs/jtorrecilla/archive/tags/Win8/default.aspx">Win8</category></item></channel></rss>