Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void openFileWithLogToolStripMenuItem_Click(object sender, EventArgs e)
- {
- try
- {
- using (OpenFileDialog ofd = new OpenFileDialog())
- {
- FileTypeCollection<Map> ftc = FileTypeManagerCache.GetFileTypeCollection<Map>(FileTypeFlags.ReadSupport);
- ofd.Filter = ftc.GetFileTypesFilter();
- if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- using (FileStream input = File.OpenRead(ofd.FileName))
- {
- Map map = null;
- ZipPackage zipPackage = (ZipPackage)ZipPackage.Open(input, FileMode.Open, FileAccess.Read);
- string mapStylesPath = Path.Combine("studio", "mapstyles.xml");
- Uri partUriMapStyles = PackUriHelper.CreatePartUri(new Uri(mapStylesPath, UriKind.Relative));
- PackagePart packagePartMapStyles = zipPackage.GetPart(partUriMapStyles);
- using (Stream packStream = packagePartMapStyles.GetStream(FileMode.Open, FileAccess.Read))
- {
- ObjectSerializer<Map> serializer = new ObjectSerializer<Map>();
- serializer.UnknownElement += serializer_UnknownElement;
- map = serializer.Deserialize(packStream);
- /*
- // или закоментить три последние строчки и опробовать прямой вариант с XmlSerializer
- XmlSerializer serializer = new XmlSerializer(typeof(Map));
- map = (Map)serializer.Deserialize(packStream);
- */
- }
- MessageBox.Show("Map was loaded. Number of layers is " + map.Layers.Count.ToString());
- map.Dispose();
- }
- }
- }
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.StackTrace);
- }
- }
- void serializer_UnknownElement(object sender, SerializationEventArgs e)
- {
- if (e.UnknownElement != null)
- MessageBox.Show(e.UnknownElement.ToString());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement