Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1.  
  2. private void openFileWithLogToolStripMenuItem_Click(object sender, EventArgs e)
  3. {
  4. try
  5. {
  6. using (OpenFileDialog ofd = new OpenFileDialog())
  7. {
  8. FileTypeCollection<Map> ftc = FileTypeManagerCache.GetFileTypeCollection<Map>(FileTypeFlags.ReadSupport);
  9. ofd.Filter = ftc.GetFileTypesFilter();
  10.  
  11. if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  12. {
  13. using (FileStream input = File.OpenRead(ofd.FileName))
  14. {
  15. Map map = null;
  16.  
  17. ZipPackage zipPackage = (ZipPackage)ZipPackage.Open(input, FileMode.Open, FileAccess.Read);
  18.  
  19. string mapStylesPath = Path.Combine("studio", "mapstyles.xml");
  20. Uri partUriMapStyles = PackUriHelper.CreatePartUri(new Uri(mapStylesPath, UriKind.Relative));
  21.  
  22. PackagePart packagePartMapStyles = zipPackage.GetPart(partUriMapStyles);
  23. using (Stream packStream = packagePartMapStyles.GetStream(FileMode.Open, FileAccess.Read))
  24. {
  25. ObjectSerializer<Map> serializer = new ObjectSerializer<Map>();
  26. serializer.UnknownElement += serializer_UnknownElement;
  27. map = serializer.Deserialize(packStream);
  28.  
  29. /*
  30. // или закоментить три последние строчки и опробовать прямой вариант с XmlSerializer
  31. XmlSerializer serializer = new XmlSerializer(typeof(Map));
  32. map = (Map)serializer.Deserialize(packStream);
  33. */
  34. }
  35. MessageBox.Show("Map was loaded. Number of layers is " + map.Layers.Count.ToString());
  36. map.Dispose();
  37. }
  38. }
  39. }
  40. }
  41. catch(Exception ex)
  42. {
  43. MessageBox.Show(ex.StackTrace);
  44. }
  45. }
  46.  
  47. void serializer_UnknownElement(object sender, SerializationEventArgs e)
  48. {
  49. if (e.UnknownElement != null)
  50. MessageBox.Show(e.UnknownElement.ToString());
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement