Compartilhar via


Elemento <xmlSerializer>

Especifica se uma verificação adicional de progresso do XmlSerializer é feita.

<configuração>
<system.xml.serialization>

Syntax

<xmlSerializer checkDeserializerAdvance = "true|false" />  

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
checkDeserializeAdvances Especifica se o progresso do XmlSerializer é verificado. Defina o atributo como "true" ou "false". O padrão é "true".
useLegacySerializationGeneration Especifica se o XmlSerializer usa a geração de serialização herdada que gera assemblies escrevendo código C# em um arquivo e, em seguida, compilando-o em um assembly. O padrão é false.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<Elemento> system.xml.serialization Contém definições de configuração para as classes XmlSerializer e XmlSchemaImporter.

Comentários

Por padrão, o XmlSerializer fornece uma camada adicional de segurança contra potenciais ataques de negação de serviço ao desserializar dados não confiáveis. Ele faz isso tentando detectar loops infinitos durante a desserialização. Se uma condição desse tipo for detectada, uma exceção será gerada com a seguinte mensagem: “Erro interno: a desserialização não pôde avançar sobre o fluxo subjacente”.

Receber essa mensagem não necessariamente indica que um ataque de negação de serviço esteja em andamento. Em algumas circunstâncias raras, o mecanismo de detecção de loop infinito produz um falso positivo e a exceção é gerada para uma mensagem de entrada legítima. Se você achar que em seus aplicativos específicos mensagens legítimas estão sendo rejeitadas por essa camada extra de proteção, defina o atributo checkDeserializeAdvances como “false”.

Exemplo

O exemplo de código a seguir define o atributo checkDeserializeAdvances como “false”.

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

Confira também