如何防止XmlSerializer转义<和>人物

时间:2014-07-30 07:02:49

标签: c# .net xmlserializer cdata

我使用XlmSerializer来序列化一个dotnet对象。

dotnet对象的一个​​属性是具有此值的字符串:

"<![CDATA[<p>No Comments</p>]]>"

序列化为StringWriter后,所有<>字符都会转换为&lt;&gt;,包括CDATA。

我怎么能阻止这种情况发生?

1 个答案:

答案 0 :(得分:1)

不要放入CDATA - 这是串行器的工作。您刚刚告诉序列化程序从CDATA字符串中生成有效的XML。它正是如此 - 在反序列化之后,你仍然留有<![CDATA[<p>No Comments</p>]]>。这正是你要求的!更重要的是,它正是您希望序列化程序处理数据的原因 - 否则您将面临一个受伤的世界,因为您需要确保数据实际上是安全的。实质上,您正在执行双重编码。

相反,只需将<p>No Comments</p>放在那里 - 序列化程序将为您处理转义,以确保它是实际反序列化为<p>No Comments</p>的有效XML。