2011-09-30 88 views
1

我有一個RESCF WCF Web服務(使用大幅修改的WCF Rest Starter Kit),數據協定是用[Serializable]和[XmlType]標記的簡單POCO(成員標有[XmlElement]或[XmlAttribute]在適當的情況下)。WCF和XmlSerialization和XmlWriterSettings

WCF內部的某個地方創建了XmlSerializer的一個實例,該實例在XML節點之間生成輸出時沒有縮進或間隔,這對於自動化流程很好,但由於我必須自己手動格式化XML輸出,所以調試更加困難。

我想使用XmlWriterSettings,所以它會自動格式化XML之前,它被髮送到管道,但我看不到我可以注入它。

我使用Reflector來查找在WCF中實例化XmlSerializer的位置,它顯示了幾個嵌套的內部類isnide XmlSerializerOperationBehavior,但除此之外,我卡住了。

Ta!

+0

你在看什麼XML?爲什麼不直接在XML編輯器(如Visual Studio)中查看它?或者使用XML可視化器在調試器中查看它。 –

回答

2

XmlWriterSettings對象不會傳遞給構造函數XmlSerializer,而是傳遞給XmlWriter,然後在將對象寫出時傳遞給序列化程序。您可以更改的地方是一個自定義消息編碼器(負責在消息中的XML Infoset和線路中的實際字節之間進行轉換)。創建XmlWriter實例的自定義編碼器的一個很好的示例是「Custom Text Encoder」。