SecurityElement.IsValidText возвращает true для «&»… почему?

У меня есть TextBox, который в конечном итоге сохраняется в узле xml. Я использую SecurityElement.Escape (string2Escape) , чтобы избежать недопустимых символов перед сохранением xml.

Проблема: я пытался использовать IsValidText, чтобы проверить, нужно ли мне запускать метод escape, но он возвращает '' 'и' & 'как действительные, но затем, когда вы сохраняете xml, система перестает работать, потому что они, по сути, недействительны. Кажется, что ложь возвращается только для '<' или '>'.

Простое решение, удалить проверку, но мой вопрос: почему это так?

Ниже приведен мой ошибочный код:

private string EscapeXML(string nodeText)
{
    if (!SecurityElement.IsValidText(nodeText))
    {
        return SecurityElement.Escape(nodeText);
    }
    return nodeText;
}
9
задан Yetti 16 February 2011 в 05:34
поделиться