Udostępnij przez


<xmlSerializer> Pierwiastek

Określa, czy jest wykonywana dodatkowa kontrola postępu XmlSerializer .

<configuration> <system.xml.serialization>

Składnia

<xmlSerializer checkDeserializerAdvance = "true|false" />

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Attributes

Attribute Description
checkDeserializeAdvances Określa, czy postęp XmlSerializer jest sprawdzany. Ustaw atrybut na wartość "true" lub "false". Wartość domyślna to "true".
useLegacySerializationGeneration Określa, czy używa starszej XmlSerializer generacji serializacji, która generuje zestawy, pisząc kod języka C# do pliku, a następnie kompilując go do zestawu. Wartość domyślna to false.

Elementy podrzędne

Żaden.

Elementy nadrzędne

Składnik Description
<system.xml.serialization> , element Zawiera ustawienia konfiguracji dla XmlSerializer klas i XmlSchemaImporter .

Uwagi

Domyślnie program XmlSerializer zapewnia dodatkową warstwę zabezpieczeń przed potencjalnymi atakami typu "odmowa usługi" podczas deserializacji niezaufanych danych. Robi to, próbując wykryć nieskończone pętle podczas deserializacji. Jeśli taki warunek zostanie wykryty, zostanie zgłoszony wyjątek z następującym komunikatem: "Błąd wewnętrzny: deserializacja nie powiodła się, aby przejść przez strumień bazowy".

Odbieranie tego komunikatu nie musi oznaczać, że atak typu "odmowa usługi" jest w toku. W niektórych rzadkich okolicznościach mechanizm wykrywania nieskończonej pętli generuje wynik fałszywie dodatni, a wyjątek jest zgłaszany dla uzasadnionego komunikatu przychodzącego. Jeśli okaże się, że w konkretnej aplikacji uzasadnione komunikaty są odrzucane przez tę dodatkową warstwę ochrony, ustaw atrybut checkDeserializeAdvances na "false".

Example

Poniższy przykład kodu ustawia atrybut checkDeserializeAdvances na wartość "false".

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

Zobacz także