C'est lors de l'utilisation de XDocument à partir de .net.
Je pensais que cela pourrait fonctionner ...
xElement.Element(elementName).Value = new XCData(value).ToString();
... mais ça sort comme ça ...
<name><![CDATA[hello world]]></name>
Essayer
xElement.Element(elementName).ReplaceNodes(new XCData(value));
XCData est un type de XNode . En tant que tel, vous devriez essayer de Ajouter le à l'élément, plutôt que de définir la valeur (qui est documentée pour être le contenu texte aplati de l'élément):
xElement.Element(elementName).Add(new XCData(value));
Si vous créez le XElement (vs le modifiant), vous pouvez aussi simplement l'ajouter directement dans le constructeur comme le contenu comme ceci:
new XElement(elementName, new XCData(value));