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>