我有一个方法将对象序列化为xml并返回字符串:
public static string SerializeType<T>(T item)
{
var serializer = new XmlSerializer(typeof(T));
var builder = new StringBuilder();
var settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using (var stringWriter = XmlWriter.Create(builder, settings))
{
serializer.Serialize(stringWriter, item);
return builder.ToString();
}
}
但是,它并没有从我传入的对象中删除字符串中的所有保留字符.Microsoft将Reserved Characters列为&lt;&gt;&amp;%但是当我输入带有“abc&amp; cd%”的项目时d“字符串字段,它在没有分号前面的空格的情况下吐出”a&amp; lt; ab&amp; gt; bc&amp; amp; cd%d“。 %未被转义。如何为百分比添加正确的转义序列?当我将它发送到客户端的应用程序时,%会导致错误。该页面上列出的转义可以解决问题。
答案 0 :(得分:1)
%
实际上并不是XML中的保留字符。您所引用的文档适用于SQL Server,并且表中有一个小注释:
Notification Services XML词汇表保留用于表示参数的百分号(%)。
但您不应期望XmlSerializer
(或任何其他通用XML库)为您逃脱%
。除非您使用&#34; Notification Services XML&#34;我不希望这是一个问题。