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>

Voir aussi