これは、.netからXDocumentを使用する場合です。
これはうまくいくと思いました...
xElement.Element(elementName).Value = new XCData(value).ToString();
...しかし、それはこのように出てきます...
<name><![CDATA[hello world]]></name>
試す
xElement.Element(elementName).ReplaceNodes(new XCData(value));
XCData は XNode の一種です。したがって、値を設定するのではなく、要素に Add を試行する必要があります(つまり、要素の平坦化されたテキストコンテンツになるように documented です)。
xElement.Element(elementName).Add(new XCData(value));
XElement を作成している場合(それを変更するのと比べて)、次のように、コンテンツとしてコンストラクタに直接追加することもできます。
new XElement(elementName, new XCData(value));