public void OpenSolution() { var serializationService = ShServiceContainer.Instance.SerializationService; ShSerializationDataService.RegisterKnownTypes(typeof(MetaPackSolution).Assembly.GetTypes()); var dlg = new OpenFileDialog { Filter = "MetaPack Solution (.mpack)|*.mpack|All Files (*.*)|*.*", FilterIndex = 0 }; var result = dlg.ShowDialog(); if (result == DialogResult.OK) { _lastFileLocation = dlg.FileName; var data = File.ReadAllText(dlg.FileName); var solution = serializationService.Deserialize(typeof(MetaPackSolution), data) as MetaPackSolution; CurrentSolution = solution; RaiseEvent(new SolutionEvent { EventType = SolutionEventType.Opened, Item = solution }); } }
public static string SerializeToString(object obj, IEnumerable <Type> extraTypes) { var serializer = new ShSerializationDataService(); if (extraTypes != null) { ShSerializationDataService.RegisterKnownTypes(extraTypes); } return(serializer.Serialize(obj)); }
public static T DeserializeFromString <T>(string value, IEnumerable <Type> extraTypes) { var serializer = new ShSerializationDataService(); if (extraTypes != null) { ShSerializationDataService.RegisterKnownTypes(extraTypes); } var result = serializer.Deserialize(typeof(T), value); if (result != null) { return((T)result); } return(default(T)); }
public void SaveSolution(bool showSaveAsDialog) { var solution = CurrentSolution; if (solution != null) { var targetFile = _lastFileLocation; if (string.IsNullOrEmpty(targetFile) || showSaveAsDialog) { var dlg = new SaveFileDialog { Filter = "MetaPack Solution (.mpack)|*.mpack|All Files (*.*)|*.*", FilterIndex = 0, RestoreDirectory = true }; if (dlg.ShowDialog() == DialogResult.OK) { targetFile = dlg.FileName; _lastFileLocation = targetFile; } } if (!string.IsNullOrEmpty(targetFile)) { ShSerializationDataService.RegisterKnownTypes(typeof(MetaPackSolution).Assembly.GetTypes()); var serializationService = ShServiceContainer.Instance.SerializationService; var workspaceContent = serializationService.Serialize(solution); File.WriteAllText(targetFile, workspaceContent); } RaiseEvent(new SolutionEvent { EventType = SolutionEventType.Saved, Item = solution }); } }