Mitigação: serialização de caracteres de controle com o DataContractJsonSerializer

A partir do .NET Framework 4.7, a maneira como os caracteres de controle são serializados com o DataContractJsonSerializer foi alterada para estar em conformidade com o ECMAScript V6 e V8.

Impacto

No .NET framework 4.6.2 e nas versões anteriores, o DataContractJsonSerializer não serializava alguns caracteres de controle especiais, como \b, \f e \t, de uma forma compatível com os padrões ECMAScript V6 e V8.

Para aplicativos destinados a versões do .NET Framework, a partir do .NET Framework 4.7, a serialização desses caracteres de controle é compatível com o ECMAScript V6 e V8. As seguintes APIs são afetadas:

Atenuação

Para aplicativos destinados a versões do .NET Framework, a partir do .NET Framework 4.7, esse comportamento é habilitado por padrão.

Se esse comportamento não for desejado, você poderá recusar esse recurso adicionando a seguinte linha na seção <runtime> do arquivo app.config ou web.config:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseECMAScriptV6EscapeControlCharacter=false" />
</runtime>

Confira também