Как читать и писать в Xml - PullRequest
0 голосов
/ 09 марта 2012

Я записываю некоторые данные реестра в файл XML. Существует символ ¬, который генерируется как значение для строки в regkey. Когда я пишу в XML, я получаю & # x2; и когда я пытаюсь прочитать его обратно, я получаю сообщение об ошибке. Есть ли способ преодолеть это, как я могу продолжить?

Ошибка при чтении:

> System.InvalidOperationException was unhandled    
> Message="There is an error in XML document (235, 28)."

Чтение из файла:

public diagnostics readregkey(diagnostics diagnostics, string filename)
{
    diagnostics dia = null;
    using (System.IO.StreamReader sr = 
        new System.IO.StreamReader(filename, Encoding.Unicode))
    {
        System.Xml.Serialization.XmlSerializer x = 
            new System.Xml.Serialization.XmlSerializer(typeof(diagnostics));
        dia = x.Deserialize(sr) as diagnostics;
    }
    return dia;
}

Запись в файл:

public static void  WriteRegKey(diagnostics diagnostics, string filename)
{
    diagnostic.regKeys.Add(key(Registry.LocalMachine, sKeyGravitas));
    diagnostic.regKeys.Add(key(Registry.CurrentUser, sKeyGravitas));
    using (System.IO.StreamWriter sw = 
        new System.IO.StreamWriter(filename,false, Encoding.Unicode))
    {
        System.Xml.Serialization.XmlSerializer x = 
            new System.Xml.Serialization.XmlSerializer(typeof(diagnostics));
        x.Serialize(sw, diagnostics);
    }
}

1 Ответ

4 голосов
/ 09 марта 2012

Вы можете использовать метод WriteRaw, который позволяет выписывать необработанную разметку вручную Этот метод предотвращает экранирование специальных символов.

Документацию можно найти здесь: http://msdn.microsoft.com/en-us/library/4zhk8s1x%28v=vs.71%29.aspx

...