[
  {
    "Id": "209166",
    "ThreadId": "61652",
    "Html": "<p>I have a zip file with some xml serialized data in different files (file1.xml, file2.xml, etc.)</p>\r\n<p>Can someone show me how to extract from from the zip file into a string so i can deserialize the data please? I already have the following as deserialization code...can I avoid saving to string and deserialize directly into my List&lt;T&gt; ?</p>\r\n<p>&nbsp;</p>\r\n<div style=\"color:Black;background-color:White\">\r\n<pre>        <span style=\"color:Blue\">public</span> <span style=\"color:Blue\">static</span> T DeserializeObject&lt;T&gt;(Encoding encoding, <span style=\"color:Blue\">string</span> xml)\r\n        {\r\n            <span style=\"color:Blue\">try</span>\r\n            {\r\n                <span style=\"color:Blue\">using</span> (MemoryStream memoryStream = <span style=\"color:Blue\">new</span> MemoryStream(StringToByteArray(encoding, xml)))\r\n                {\r\n                    <span style=\"color:Blue\">using</span> (XmlTextWriter xmlTextWriter = <span style=\"color:Blue\">new</span> XmlTextWriter(memoryStream, encoding))\r\n                    {\r\n                        XmlSerializer xmlSerializer = <span style=\"color:Blue\">new</span> XmlSerializer(<span style=\"color:Blue\">typeof</span>(T));\r\n\r\n                        <span style=\"color:Blue\">return</span> (T)xmlSerializer.Deserialize(memoryStream);\r\n                    }\r\n                }\r\n            }\r\n            <span style=\"color:Blue\">catch</span>\r\n            {\r\n                <span style=\"color:Blue\">return</span> <span style=\"color:Blue\">default</span>(T);\r\n            }\r\n        }\r\n</pre>\r\n</div>\r\n<p>&nbsp;</p>\r\n<p>Thanks</p>\r\n<p>&nbsp;</p>\r\n<p>EDIT: Nevermind, I figured it out myself. I did something like this:</p>\r\n<p>using (ZipFile zip = ZipFile.Read(txtFile.Text.ToString()) )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ZipEntry treeHier = zip[&quot;TreeHierarchy.xml&quot;];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (MemoryStream ms = new MemoryStream())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; treeHier.Extract(ms);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; importTreeHierarchy = Helpers.DeserializeObject&lt;List&lt;TreeHierarchy&gt;&gt;(Encoding.UTF8 ,Helpers.GetStringFromMemoryStream(ms));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>\r\n<p>&nbsp;</p>",
    "PostedDate": "2009-07-06T15:05:16.103-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  },
  {
    "Id": "209191",
    "ThreadId": "61652",
    "Html": "<p>Extracting to a MemoryStream is probably the best way to go.</p>",
    "PostedDate": "2009-07-06T15:54:47.623-07:00",
    "UserRole": null,
    "MarkedAsAnswerDate": null
  }
]