/// <summary> /// Serializes the data of this instance and writes it into the specified <paramref name="stream" />. /// </summary> /// <param name="stream">The stream.</param> /// <param name="upgradeVersionNumber">if set to <c>true</c>, the version number is adjusted to match the current version.</param> public void WriteTo(Stream stream, bool upgradeVersionNumber) { if (upgradeVersionNumber) { FileVersion = MeshModel.MeshModelFileVersion; } var settings = new XmlWriterSettings { Indent = false, Encoding = System.Text.Encoding.UTF8, CloseOutput = false }; using (var writer = XmlWriter.Create(stream, settings)) { writer.WriteStartDocument(true); writer.WriteStartElement("MeshModelMetadata"); writer.WriteElementString("FileVersion", FileVersion.ToString()); writer.WriteElementString("SourceFormat", SourceFormat); writer.WriteElementString("Guid", Guid.ToString("N", System.Globalization.CultureInfo.InvariantCulture)); writer.WriteElementString("TriangulationHash", TriangulationHash.ToString("N", System.Globalization.CultureInfo.InvariantCulture)); writer.WriteElementString("Name", Name); writer.WriteElementString("PartCount", PartCount.ToString(System.Globalization.CultureInfo.InvariantCulture)); if (Layer != null && Layer.Length > 0) { writer.WriteStartElement("Layer"); foreach (var layer in Layer) { writer.WriteElementString("string", layer); } writer.WriteEndElement(); } if (SourceModels != null && SourceModels.Length > 0) { writer.WriteStartElement("SourceModels"); foreach (var layer in SourceModels) { writer.WriteElementString("Model", layer); } writer.WriteEndElement(); } if (MeshValueEntries != null && MeshValueEntries.Length > 0) { WriteMeshValueEntries(writer); } writer.WriteEndElement(); writer.WriteEndDocument(); } }
public void WriteXml(System.Xml.XmlWriter writer) { var s = new XmlSerializer(typeof(string)); var b = new XmlSerializer(typeof(bool)); var l = new XmlSerializer(typeof(List <AutoAnswer>)); writer.WriteStartElement("TaskInfo"); //taskid writer.WriteStartElement("TaskId"); s.Serialize(writer, TaskId.ToString()); writer.WriteEndElement(); //pluginname writer.WriteStartElement("PluginName"); s.Serialize(writer, PluginName); writer.WriteEndElement(); //url writer.WriteStartElement("Url"); s.Serialize(writer, Url); writer.WriteEndElement(); //title writer.WriteStartElement("Title"); s.Serialize(writer, Title); writer.WriteEndElement(); //status writer.WriteStartElement("Status"); DownloadStatus tmpds = Status; if (tmpds == DownloadStatus.正在下载 || tmpds == DownloadStatus.正在停止 || tmpds == DownloadStatus.等待开始) { tmpds = DownloadStatus.已经停止; } s.Serialize(writer, tmpds.ToString()); writer.WriteEndElement(); //createtime writer.WriteStartElement("CreateTime"); s.Serialize(writer, CreateTime.ToString()); writer.WriteEndElement(); //finishtime if (FinishTime != null) { writer.WriteStartElement("FinishTime"); s.Serialize(writer, FinishTime.ToString()); writer.WriteEndElement(); } //savedirectory writer.WriteStartElement("SaveDirectory"); s.Serialize(writer, SaveDirectory.ToString()); writer.WriteEndElement(); //PartCount writer.WriteStartElement("PartCount"); s.Serialize(writer, PartCount.ToString()); writer.WriteEndElement(); //CurrentPart writer.WriteStartElement("CurrentPart"); s.Serialize(writer, CurrentPart.ToString()); writer.WriteEndElement(); //is be added writer.WriteStartElement("IsBeAdded"); b.Serialize(writer, IsBeAdded); writer.WriteEndElement(); //partialfinished writer.WriteStartElement("PartialFinished"); b.Serialize(writer, PartialFinished); writer.WriteEndElement(); //partialfinished detail writer.WriteStartElement("PartialFinishedDetail"); s.Serialize(writer, PartialFinishedDetail); writer.WriteEndElement(); //autoanswer writer.WriteStartElement("AutoAnswers"); l.Serialize(writer, AutoAnswer); writer.WriteEndElement(); //extract cache writer.WriteStartElement("ExtractCache"); b.Serialize(writer, ExtractCache); writer.WriteEndElement(); //FilePath writer.WriteStartElement("Files"); foreach (string item in FilePath) { writer.WriteStartElement("File"); s.Serialize(writer, item); writer.WriteEndElement(); } writer.WriteEndElement(); //SubFilePath writer.WriteStartElement("SubFiles"); foreach (string item in SubFilePath) { writer.WriteStartElement("SubFile"); s.Serialize(writer, item); writer.WriteEndElement(); } writer.WriteEndElement(); //DownloadType writer.WriteStartElement("DownloadType"); s.Serialize(writer, DownloadTypes.ToString("D")); writer.WriteEndElement(); //proxy XmlSerializer sProxy = new XmlSerializer(typeof(AcDownProxy)); writer.WriteStartElement("Proxy"); sProxy.Serialize(writer, new AcDownProxy().FromWebProxy(Proxy)); writer.WriteEndElement(); //source url writer.WriteStartElement("SourceUrl"); s.Serialize(writer, SourceUrl); writer.WriteEndElement(); //comment writer.WriteStartElement("Comment"); s.Serialize(writer, Comment); writer.WriteEndElement(); //hash writer.WriteStartElement("Hash"); s.Serialize(writer, Hash); writer.WriteEndElement(); //Progress writer.WriteStartElement("Progress"); s.Serialize(writer, GetProgress().ToString()); writer.WriteEndElement(); //settings XmlSerializer sSettings = new XmlSerializer(typeof(SerializableDictionary <string, string>)); writer.WriteStartElement("Settings"); sSettings.Serialize(writer, Settings); writer.WriteEndElement(); writer.WriteEndElement(); }