【问题标题】:How to deserialize an entire parent node inside an XML to a single string如何将 XML 中的整个父节点反序列化为单个字符串
【发布时间】:2018-09-24 14:41:34
【问题描述】:

我有一个包含节点的 XML 文件,

我需要将其反序列化为类

    [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> 下的整个文本作为字符串获取

我尝试了正常的反序列化。但给出错误。尝试将整个节点添加到“值”,但仍然 '

【问题讨论】:

    标签: c# xml serialization


    【解决方案1】:

    protected bool WriteConfigFile(string fileName, Type type, object 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 不是使用序列化形成的。一旦我这样做了,这种反序列化就可以正常工作。序列化时会自动使用转义符号保存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      相关资源
      最近更新 更多