<xmlSerializer> 元素
指定是否完成 XmlSerializer 进度的额外检查。
<configuration>
<system.xml.serialization>
语法
<xmlSerializer checkDeserializerAdvance = "true|false" />
特性和元素
下列各节描述了特性、子元素和父元素。
特性
属性 | 描述 |
---|---|
checkDeserializeAdvances | 指定是否已检查 XmlSerializer 的进度。 将特性设置为“true”或“false”。 默认值为“true”。 |
useLegacySerializationGeneration | 指定 XmlSerializer 是否使用旧的序列化生成,该方法通过将 C# 代码写入到一个文件,然后将其编译为程序集来生成程序集。 默认值为 false。 |
子元素
无。
父元素
元素 | 说明 |
---|---|
<system.xml.serialization> 元素 | 包含 XmlSerializer 和 XmlSchemaImporter 类的配置设置。 |
备注
默认情况下,当反序列化不受信任的数据时,XmlSerializer 会额外提供一层防范潜在拒绝服务攻击的安全保护。 它通过在反序列化期间尝试检测无限循环来实现以上保护。 若检测到此类情况,将引发异常,并出现以下消息:“内部错误: 反序列化无法越过基础流。”
接收到此消息并不一定表示正在发生拒绝服务攻击。 在某些极少出现的情况下,无限循环检测机制会产生误报,并对合法的传入消息引发异常。 如果发现在你的特定应用程序中,合法消息被这一额外的保护层拒绝,请将 checkDeserializeAdvances 属性设置为“false”。
示例
下面的代码示例将 checkDeserializeAdvances 属性设置为“false”。
<configuration>
<system.xml.serialization>
<xmlSerializer checkDeserializeAdvances="false" />
</system.xml.serialization>
</configuration>