Во-первых, кажется, нет причин, чтобы это предотвратить.Как упоминал Кенни, если специальные символы не закодированы в XML, никакой синтаксический анализатор не сможет проанализировать полученный XML (потому что символы «<» или «>» много значат для этого синтаксического анализатора).Во-вторых, когда ваш анализатор декодирует XML (например, вы вызываете XElement.Value), все специальные символы будут преобразованы обратно в то, что они изначально были.Наконец, если вы хотите сохранить исходную строку (например, для целей, отличных от анализа XML), вы можете использовать CDATA, который в случае Linq2XML представлен классом XCData.
EDIT :Как указал Роб, я мог ошибиться.Если нужно сохранить существующий XML-документ, добавив к нему документы без появления специальных символов, используйте следующий код:
XDocument document = new XDocument();
var xmlFromDb = "<xml>content</xml>";
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(xmlFromDb)))
{
using (var reader = XmlReader.Create(stream)) {
reader.MoveToContent();
document.Add(XElement.ReadFrom(reader));
}
}