{"id":95,"date":"2008-10-21T16:05:00","date_gmt":"2008-10-21T16:05:00","guid":{"rendered":"https:\/\/wdev-blog.azurewebsites.net\/index.php\/2008\/10\/21\/"},"modified":"2008-10-21T16:05:00","modified_gmt":"2008-10-21T16:05:00","slug":"95","status":"publish","type":"post","link":"http:\/\/panahy.nl\/index.php\/2008\/10\/21\/95\/","title":{"rendered":""},"content":{"rendered":"<p>Another peace of code that I don&#8217;t want to rewrite it again (and again)    <\/p>\n<pre><!--<br \/><br \/>Code highlighting produced by Actipro SyntaxEditor<br \/>http:\/\/www.ActiproSoftware.com\/Products\/DotNet\/<br \/><br \/>--><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System;<br \/><\/span><span style=\"color: #0000FF; \">using<\/span><span style=\"color: #000000; \"> System.Collections.Generic;<br \/><br \/><\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \"><br \/><\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> This class uses XmlSerializer to do both sides of conversion to xml string<br \/><\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \"><br \/><\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;typeparam name=\"T\"&gt;<\/span><span style=\"color: #008000; \">any Serializable class<\/span><span style=\"color: #808080; \">&lt;\/typeparam&gt;<\/span><span style=\"color: #808080; \"><br \/><\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">class<\/span><span style=\"color: #000000; \"> Serializer<\/span><span style=\"color: #000000; \">&lt;<\/span><span style=\"color: #000000; \">T<\/span><span style=\"color: #000000; \">&gt;<\/span><span style=\"color: #000000; \"><br \/>{<br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> Convert an instance to XML string<br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;param name=\"item\"&gt;&lt;\/param&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;returns&gt;&lt;\/returns&gt;<\/span><span style=\"color: #808080; \"><br \/><\/span><span style=\"color: #000000; \">    <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> Serialize(T item)<br \/>    {<br \/><br \/>        MemoryStream ms <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> MemoryStream();<br \/>        XmlTextWriter writer <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> XmlTextWriter(ms, Encoding.Unicode);<br \/><br \/>        XmlSerializer serializer <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> XmlSerializer(<\/span><span style=\"color: #0000FF; \">typeof<\/span><span style=\"color: #000000; \">(T));<br \/>        serializer.Serialize(writer, item);<br \/><br \/>        writer.Flush();<br \/>        ms.Position <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #FF0000; \">0<\/span><span style=\"color: #000000; \">;<br \/><br \/>        StreamReader reader <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> StreamReader(ms);<br \/>        <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> reader.ReadToEnd();<br \/><br \/>    }<br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> another version, could be better<br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;param name=\"item\"&gt;&lt;\/param&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;returns&gt;&lt;\/returns&gt;<\/span><span style=\"color: #808080; \"><br \/><\/span><span style=\"color: #000000; \">    <\/span><span style=\"color: #0000FF; \">private<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> GetSerialize2(T item)<br \/>    {<br \/>        StringWriter wr <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> StringWriter(<\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> StringBuilder());<br \/><br \/>        XmlSerializer serializer <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> XmlSerializer(<\/span><span style=\"color: #0000FF; \">typeof<\/span><span style=\"color: #000000; \">(T));<br \/>        serializer.Serialize(wr, item);<br \/><br \/>        wr.Close();<br \/>        <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> wr.GetStringBuilder().ToString();<br \/>    }<br \/><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> Convert the XML string to an instance of an object<br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;\/summary&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;param name=\"xml\"&gt;&lt;\/param&gt;<\/span><span style=\"color: #008000; \"><br \/>    <\/span><span style=\"color: #808080; \">\/\/\/<\/span><span style=\"color: #008000; \"> <\/span><span style=\"color: #808080; \">&lt;returns&gt;&lt;\/returns&gt;<\/span><span style=\"color: #808080; \"><br \/><\/span><span style=\"color: #000000; \">    <\/span><span style=\"color: #0000FF; \">public<\/span><span style=\"color: #000000; \"> T Deserialize(<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> xml)<br \/>    {<br \/>        XmlTextReader stream <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> XmlTextReader(<\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> StringReader(xml));<br \/>        XmlSerializer serializer <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #0000FF; \">new<\/span><span style=\"color: #000000; \"> XmlSerializer(<\/span><span style=\"color: #0000FF; \">typeof<\/span><span style=\"color: #000000; \">(T));<br \/>        <\/span><span style=\"color: #0000FF; \">return<\/span><span style=\"color: #000000; \"> (T)serializer.Deserialize(stream);<br \/>    }<br \/>}<\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Another peace of code that I don&#8217;t want to rewrite it again (and again) using System;using System.Collections.Generic;\/\/\/ &lt;summary&gt;\/\/\/ This class uses XmlSerializer to do both sides of conversion to xml string\/\/\/ &lt;\/summary&gt;\/\/\/ &lt;typeparam name=&#8221;T&#8221;&gt;any Serializable class&lt;\/typeparam&gt;public class Serializer&lt;T&gt;{ \/\/\/ &lt;summary&gt; \/\/\/ Convert an instance to XML string \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=&#8221;item&#8221;&gt;&lt;\/param&gt; \/\/\/ &lt;returns&gt;&lt;\/returns&gt; public &hellip; <a href=\"http:\/\/panahy.nl\/index.php\/2008\/10\/21\/95\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[43,79,29],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false},"uagb_author_info":{"display_name":"Pouya Panahy","author_link":"http:\/\/panahy.nl\/index.php\/author\/pouya\/"},"uagb_comment_info":0,"uagb_excerpt":"Another peace of code that I don&#8217;t want to rewrite it again (and again) using System;using System.Collections.Generic;\/\/\/ &lt;summary&gt;\/\/\/ This class uses XmlSerializer to do both sides of conversion to xml string\/\/\/ &lt;\/summary&gt;\/\/\/ &lt;typeparam name=\"T\"&gt;any Serializable class&lt;\/typeparam&gt;public class Serializer&lt;T&gt;{ \/\/\/ &lt;summary&gt; \/\/\/ Convert an instance to XML string \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"item\"&gt;&lt;\/param&gt; \/\/\/ &lt;returns&gt;&lt;\/returns&gt; public&hellip;","_links":{"self":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/95"}],"collection":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":0,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"wp:attachment":[{"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/panahy.nl\/index.php\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}