1

我在msdn上读到,WCF 客户端的 readerQuotas 的属性 maxStringContentLength 意味着:

一个正整数,指定 XML 元素内容中允许的最大字符数。默认值为 8192。

我在这里可能有点厚,但是他们在说 XML 元素内容时到底指的是什么?那是一个 XML 元素中的内容吗?它会包含任何嵌套的子元素吗?还是只有没有嵌套元素的每个元素的限制?

例如在以下结构中:

<a>
 <b>baap</b>
 <c>beep</c>
</a>

如果 baap 和 beep 一起超过限制,标记是否会导致 maxStringContentLength 溢出?或者如果 b 或 c 各自的内容超过限制,它们只会导致一个?还是我完全错过了什么?

谢谢大家!

4

1 回答 1

1

从 MSDN

MaxStringContentLength 此配额限制 XML 阅读器返回的最大字符串大小。此配额不限制 XML 阅读器本身的内存消耗,而是限制正在使用阅读器的组件中的内存消耗。例如,当 DataContractSerializer 使用受 MaxStringContentLength 保护的读取器时,它不会反序列化大于此配额的字符串。直接使用 XmlDictionaryReader 类时,并非所有方法都遵循此配额,而只有专门设计用于读取字符串的方法,例如 ReadContentAsString 方法。阅读器上的 Value 属性不受此配额的影响,因此不应在需要此配额提供的保护时使用。

它限制返回的字符串的最大大小,可以是 XML 字符串,也可以是返回字符串的方法。

于 2013-05-11T19:52:06.670 回答