public object ReadFile(string file, IProgressMonitor monitor) { XmlTextReader reader = new XmlTextReader (new StreamReader (file)); try { monitor.BeginTask (string.Format (GettextCatalog.GetString ("Loading project: {0}"), file), 1); reader.MoveToContent (); XmlDataSerializer ser = new XmlDataSerializer (Runtime.ProjectService.DataContext); ser.SerializationContext.BaseFile = file; CombineEntry entry = (CombineEntry) ser.Deserialize (reader, typeof(NUnitAssemblyGroupProject)); entry.FileName = file; return entry; } catch (Exception ex) { monitor.ReportError (string.Format (GettextCatalog.GetString ("Could not load project: {0}"), file), ex); throw; } finally { monitor.EndTask (); reader.Close (); } }
public void WriteFile(string file, object node, IProgressMonitor monitor) { Project project = node as Project; if (project == null) throw new InvalidOperationException ("The provided object is not a Project"); StreamWriter sw = new StreamWriter (file); try { monitor.BeginTask (string.Format (GettextCatalog.GetString("Saving project: {0}"), file), 1); XmlDataSerializer ser = new XmlDataSerializer (Runtime.ProjectService.DataContext); ser.SerializationContext.BaseFile = file; ser.Serialize (sw, project, typeof(Project)); } catch (Exception ex) { monitor.ReportError (string.Format (GettextCatalog.GetString ("Could not save project: {0}"), file), ex); } finally { monitor.EndTask (); sw.Close (); } }