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

时间:2018-09-24 14:41:35

标签: c# xml serialization

我有一个带有节点的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 个答案:

答案 0 :(得分:0)

受保护的布尔WriteConfigFile(字符串fileName,类型类型,对象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不是使用序列化形成的。一旦这样做,反序列化就可以正常工作。序列化后,它将使用转义符号自动保存。