2011-09-30 89 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”。