代码之家  ›  专栏  ›  技术社区  ›  Anand Paul

如何将XML中的整个父节点反序列化为单个字符串

  •  -2
  • Anand Paul  · 技术社区  · 6 年前

    我有一个包含节点的XML文件, enter image description here

        [Serializable]
        public class MasterSettingsFile
        {
            public string version { get; set; }
            public bool IsEncrypted { get; set; }
            public string settingsString { get; set; }
            public string GetSettingsString()
            {
                if(IsEncrypted)
                {
                   // return decrypted string
                }
    
                return settingsString;
            }
        }
    

    我要把整篇课文都写下来 <settingString>

    1 回复  |  直到 6 年前
        1
  •  0
  •   Anand Paul    6 年前

    受保护的bool WriteConfigFile(字符串文件名,类型类型,对象obj) bool retValue=true;

            FileStream fileStream = null;
            XmlSerializer xmlSerializer = null;
    
            try
            {
                this.BackupFile(fileName);
    
                fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
    
                xmlSerializer = new XmlSerializer(type);
    
                xmlSerializer.Serialize(fileStream, obj);
            }
            catch (Exception ex)
            {
                retValue = false;
    
                //LogManager.SingleInstance.WriteLog(this, ex.ToString());
    
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                }
    
                if (retValue== false)
                {
                    this.RestoreBackupFile(fileName);
                }
    
                this.DeleteBackupFile(fileName);
            }
    
            return retValue;
        }
    

    主要问题是xml不是使用序列化形成的。一旦我这么做了,这种反序列化就很好了。序列化后,它将使用转义符号自动保存。