2012-08-02 75 views
2

我有一個類正在使用System.Xaml.XamlObjectReaderSystem.Xaml.XamlXmlWriter進行序列化。一切都很順利,直到我到達包含XDocument的財產。我無法序列化類型'System.Xml.Linq.XDeclaration'。包含XDocument的序列化屬性

我怎樣才能在我的while循環序列化對象節點到磁盤讓它寫出這個屬性中的XML?

+0

你需要整個文檔嗎?嘗試僅序列化根XElement。 – 2012-08-02 19:31:45

+0

是的,它是我們產品附帶的web.config模板,我需要將其與其餘設置一起保存,以便他們可以將整個文件與我們的程序一起使用以應用所有這些設置。 – twreid 2012-08-02 20:23:01

+0

是的,但是你需要'<?xml'部分嗎? – 2012-08-02 21:28:09

回答

1

您可以將其轉換爲CData並將其序列化。 你可以參考這個例子的細節 How do you serialize a string as CDATA using XmlSerializer?

或者你也可以轉義xDocument的ToString()的xml標籤。例如String escape into XML

+0

我現在不在計算機上,但是這將與xamlwriter一起使用? – twreid 2012-08-02 20:25:13

+0

我基本上採取了你所說的只有我首先轉換爲字符串。所有的XML轉義是醜陋的,但它的工作表示感謝。 – twreid 2012-08-07 15:57:41

+0

因爲XElement實現了IXmlSerializable,所以您還應該能夠使用XML序列化來序列化根。 XDocument沒有。 – 2012-08-07 16:20:34