.NET Framework 4.7 以降では、コントロール文字を DataContractJsonSerializer でシリアル化する方法が、ECMAScript V6 および V8 に準拠するように変更されました。
インパクト
.NET Framework 4.6.2 以前のバージョンでは、 DataContractJsonSerializer は ECMAScript V6 および V8 標準と互換性のある方法で、 \b
、 \f
、 \t
などの一部の特殊な制御文字をシリアル化しませんでした。
.NET Framework 4.7 以降の .NET Framework のバージョンを対象とするアプリの場合、これらの制御文字のシリアル化は ECMAScript V6 および V8 と互換性があります。 次の API が影響を受ける。
緩和策
.NET Framework 4.7 以降のバージョンの .NET Framework を対象とするアプリの場合、この動作は既定で有効になっています。
この動作が望ましくない場合は、app.config または web.config ファイルの <runtime>
セクションに次の行を追加することで、この機能を無効にすることができます。
<runtime>
<AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseECMAScriptV6EscapeControlCharacter=false" />
</runtime>
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET