Atténuation : Sérialisation des caractères de contrôle avec DataContractJsonSerializer
À compter de .NET Framework 4.7, la manière dont les caractères de contrôle sont sérialisés avec le DataContractJsonSerializer a changé pour être conforme à ECMAScript V6 et V8.
Impact
Dans .NET Framework 4.6.2 et versions antérieures, le DataContractJsonSerializer ne sérialise pas certains caractères de contrôle spéciaux, comme \b
, \f
et \t
, d’une manière compatible avec les normes ECMAScript V6 et V8.
Pour les applications qui ciblent des versions de .NET Framework ultérieures à 4.7, la sérialisation de ces caractères de contrôle est compatible avec ECMAScript V6 et V8. Les API suivantes sont concernées :
Limitation des risques
Pour les applications qui ciblent des versions de .NET Framework ultérieures à la 4.7, ce comportement est activé par défaut.
Si ce comportement n’est pas souhaitable, vous pouvez désactiver cette fonctionnalité en ajoutant la ligne suivante à la section <runtime>
du fichier app.config ou au fichier web.config :
<runtime>
<AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseECMAScriptV6EscapeControlCharacter=false" />
</runtime>