Поделиться через


<xmlSerializer> Элемент

Указывает, выполняется ли дополнительная проверка хода выполнения XmlSerializer .

<configuration> <system.xml.serialization>

Синтаксис

<xmlSerializer checkDeserializerAdvance = "true|false" />

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Attributes

Свойство Description
checkDeserializeAdvances Указывает, проверяется ли ход выполнения XmlSerializer проверки. Задайте для атрибута значение true или false. Значение по умолчанию — true.
useLegacySerializationGeneration Указывает, использует ли XmlSerializer устаревшее поколение сериализации, которое создает сборки путем написания кода C# в файл, а затем компиляции его в сборку. Значение по умолчанию — false.

Дочерние элементы

Нет.

Родительские элементы

Элемент Description
< элемент сериализации>system.xml Содержит параметры конфигурации для XmlSerializer и XmlSchemaImporter классов.

Замечания

По умолчанию предоставляется XmlSerializer дополнительный уровень безопасности от потенциальных атак типа "отказ в обслуживании" при десериализации ненадежных данных. Это делается путем попытки обнаружить бесконечные циклы во время десериализации. При обнаружении такого условия исключение возникает со следующим сообщением: "Внутренняя ошибка: десериализация не удалось перейти по базовому потоку".

Получение этого сообщения не обязательно указывает на то, что атака типа "отказ в обслуживании" выполняется. В некоторых редких случаях механизм обнаружения бесконечного цикла создает ложное срабатывание, и исключение вызывается для законного входящего сообщения. Если вы обнаружите, что в определенных приложениях допустимые сообщения отклоняются этим дополнительным уровнем защиты, задайте для атрибута checkDeserializeAdvances значение false.

Example

Следующий пример кода задает атрибут checkDeserializeAdvances значение false.

<configuration>
  <system.xml.serialization>
    <xmlSerializer checkDeserializeAdvances="false" />
  </system.xml.serialization>
</configuration>

См. также