public void Write_EDC(string save_file_path) { // ----------- Define xml header ------------- stringwriterUTF8 sw = new stringwriterUTF8(); System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings(); settings.Indent = true; settings.NewLineChars = "\r\n"; settings.Encoding = Encoding.UTF8; settings.IndentChars = " "; // next line indent 2 space settings.OmitXmlDeclaration = false; // write header xml version and encode XmlSerializerNamespaces names = new XmlSerializerNamespaces(); names.Add(string.Empty, string.Empty); System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(sw, settings); XmlSerializer EDC_serialize = new XmlSerializer(this.GetType()); // typeof(EDC_Report)); EDC_serialize.Serialize(writer, this, names); writer.Close(); if (!Directory.Exists(Path.GetDirectoryName(save_file_path))) { Directory.CreateDirectory(Path.GetDirectoryName(save_file_path)); } try { string temp_name = save_file_path + ".tmp"; using (FileStream fs = System.IO.File.Open(temp_name, FileMode.Create)) { using (StreamWriter EDCWriter = new StreamWriter(fs, Encoding.UTF8)) { EDCWriter.Write(sw.ToString()); EDCWriter.Flush(); fs.Flush(); } } if (System.IO.File.Exists(save_file_path)) { System.IO.File.Delete(save_file_path); } while (System.IO.File.Exists(save_file_path)) { Thread.Sleep(1); } System.IO.File.Move(temp_name, save_file_path); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public string EDC_String_Serialize() { // ----------- Define xml header ------------- stringwriterUTF8 sw = new stringwriterUTF8(); System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings(); settings.Indent = true; settings.NewLineChars = "\r\n"; settings.Encoding = Encoding.UTF8; settings.IndentChars = " "; // next line indent 2 space settings.OmitXmlDeclaration = false; // write header xml version and encode XmlSerializerNamespaces names = new XmlSerializerNamespaces(); names.Add(string.Empty, string.Empty); System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(sw, settings); XmlSerializer EDC_serialize = new XmlSerializer(this.GetType()); // typeof(EDC_Report)); EDC_serialize.Serialize(writer, this, names); writer.Close(); return(sw.ToString()); }