Élément <AppContextSwitchOverrides>

Définit un ou plusieurs commutateurs utilisés par la classe AppContext pour fournir un mécanisme d’annulation d’abonnement aux nouvelles fonctionnalités.

<configuration>
  <runtime>
    <AppContextSwitchOverrides>

Syntaxe

<AppContextSwitchOverrides value="name1=value1[[;name2=value2];...]" />

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
value Obligatoire. Définit un ou plusieurs noms de commutateur et leurs valeurs booléennes associées.

valeur Attribut

Valeur Description
« name=value » Nom de commutateur prédéfini avec sa valeur (true ou false). Plusieurs paires nom/valeur de commutateur sont séparées par des points-virgules (« ; »). Pour obtenir une liste des noms de commutateur prédéfinis pris en charge par .NET Framework, consultez la section Remarques.

Éléments enfants

Aucune.

Éléments parents

Élément Description
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.
runtime Contient des informations sur les options d'initialisation du runtime.

Notes

À compter de .NET Framework 4.6, l’élément <AppContextSwitchOverrides> dans un fichier de configuration permet aux appelants d’une API de déterminer si leur application peut tirer parti des nouvelles fonctionnalités ou préserver la compatibilité avec les versions précédentes d’une bibliothèque. Par exemple, si le comportement d’une API a changé entre deux versions d’une bibliothèque, l’élément <AppContextSwitchOverrides> permet aux appelants de cette API de refuser le nouveau comportement sur les versions de la bibliothèque qui prennent en charge les nouvelles fonctionnalités. Pour les applications qui appellent des API dans .NET Framework, l’élément <AppContextSwitchOverrides> peut également autoriser les appelants dont les applications ciblent une version antérieure du .NET Framework à opter pour de nouvelles fonctionnalités si leur application s’exécute sur une version du .NET Framework qui inclut cette fonctionnalité.

L’attribut value de l’élément <AppContextSwitchOverrides> se compose d’une seule chaîne composée d’une ou plusieurs paires nom/valeur délimitées par des points-virgules. Chaque nom identifie un commutateur de compatibilité et sa valeur correspondante est booléenne (true ou false), ce qui indique si le commutateur est défini. Par défaut, le commutateur est false et les bibliothèques fournissent la nouvelle fonctionnalité. Elles ne fournissent la fonctionnalité précédente que si le commutateur est défini (autrement dit, sa valeur est true). Cela permet aux bibliothèques de fournir un nouveau comportement pour une API existante tout en permettant aux appelants qui dépendent du comportement précédent de refuser la nouvelle fonctionnalité.

.NET Framework prend en charge les commutateurs suivants :

Nom de commutateur Description Introduit
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Contrôle si Windows Presentation Foundation utilise un algorithme hérité pour la disposition des contrôles. Pour plus d’informations, consultez Atténuation : disposition WPF. .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Contrôle si l’algorithme par défaut utilisé pour signer des parties d’un package par PackageDigitalSignatureManager est SHA1 ou SHA256.
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Quand la valeur est définie sur false, permet le débogage de projets de workflow XAML avec Visual Studio lorsque FIPS est activé. Sans cela, un NullReferenceException est levé dans les appels aux méthodes dans l’assembly System.Activities. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Contrôle si la somme de contrôle d’une instance de workflow dans le débogueur utilise MD5 ou SHA1. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Contrôle si le hachage de la somme de contrôle du workflow utilise l’algorithme SHA1 introduit comme valeur par défaut dans .NET Framework 4.7 (true), ou s’il utilise l’algorithme SHA256 par défaut introduit comme algorithme par défaut dans .NET Framework 4.8 (false).
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Contrôle si les traces obtenues durant l’utilisation de fichiers PDB portables peuvent inclure les informations sur les lignes et le fichier source. false pour inclure des informations sur les lignes et le fichier source ; sinon, true. .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Contrôle si la méthode Icon.ToBitmap lève une exception lorsqu’un objet Icon a des trames PNG. Pour plus d’informations, consultez Atténuation : cadres PNG dans les objets Icon. .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Détermine si les objets System.Drawing.Text.PrivateFontCollection sont correctement placés lorsqu’ils sont ajoutés à la collection par la méthode PrivateFontCollection.AddFontFile(String). true pour maintenir le comportement hérité ; false pour supprimer tous les objets de police privés. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Contrôle si les performances de PrintPreviewDialog sont optimisées pour les imprimantes réseau. Pour plus d’informations, consultez Vue d’ensemble du contrôle PrintPreviewDialog. .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Contrôle si les vérifications de plage d’années pour les ères du calendrier japonais sont appliquées. true pour appliquer les vérifications de plage d’année et false les désactiver (comportement par défaut). Pour plus d’informations, consultez Utilisation des calendriers. .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Contrôle si seul « 1 » est reconnu comme la première année d’une ère de calendrier japonais dans les opérations d’analyse. true pour reconnaître uniquement « 1 » ; false pour reconnaître « 1 » ou Gannen (comportement par défaut). Pour plus d’informations, consultez Utilisation des calendriers. .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Contrôle si la première année d’une ère de calendrier japonais est représentée sous la forme « 1 » ou Gannen dans les opérations de mise en forme. true pour mettre en forme la première année de l’ère en tant que « 1 » ; false pour la mettre en forme en tant que Gannen (comportement par défaut). Pour plus d’informations, consultez Utilisation des calendriers. .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Contrôle si les opérations asynchrones ne circulent pas à partir du contexte du thread appelant. Pour plus d’informations, consultez Flux CurrentCulture et CurrentUICulture entre les tâches. .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Contrôle si la méthode X509CertificateClaimSet.FindClaims tente de faire correspondre le type de revendication uniquement avec la dernière entrée DNS. Pour plus d’informations, consultez Atténuation : X509CertificateClaimSet.FindClaims (méthode). .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Contrôle s’il faut autoriser AuthorizationContext.Empty à retourner un objet mutable. .NET Framework 4.6
Switch.System.IO.BlockLongPaths Contrôle si les chemins d’accès de plus de MAX_PATH (260 caractères) lèvent un PathTooLongException. Pour plus d’informations, consultez Prise en charge des chemins d’accès longs. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Contrôle si les routines de système d’exploitation natives sont utilisées pour la décompression par la classe DeflateStream. false pour utiliser des API natives ; true pour utiliser l’implémentation DeflateStream. .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Utilise la barre oblique inverse (« \ ») plutôt que la barre oblique (« / ») comme séparateur de chemin dans la propriété ZipArchiveEntry.FullName. Pour plus d’informations, consultez Atténuation : Séparateur de chemin ZipArchiveEntry.FullName. .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Contrôle si les exceptions de système d’exploitation qui sont levées sur les threads d’arrière-plan créés avec des flux SerialPort terminent le processus. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Contrôle si la normalisation des chemins hérités est utilisée et si les chemins d’URI sont pris en charge par les méthodes Path.GetDirectoryName et Path.GetPathRoot. Pour plus d’informations, consultez Atténuation : normalisation du chemin d'accès et Atténuation : vérifications des deux-points du chemin d'accès. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Contrôle si un test d’égalité compare la propriété MemberDescriptor.Category d’un objet à la propriété MemberDescriptor.Description du deuxième objet. Pour plus d’informations, consultez Implémentation incorrecte de MemberDescriptor.Equals. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Désactive la validation de l’identificateur d’objet (OID) pour l’utilisation améliorée de clé (EKU) de certificat. Une extension EKU (utilisation améliorée de la clé) est une collection d’identificateurs d’objet indiquant les applications qui utilisent la clé. .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Désactive l’atténuation de l’Exploitation du navigateur TLS1.0 par rapport à SSL/TLS (BEAST) en désactivant l’utilisation de SCH_SEND_AUX_RECORD. .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Contrôle si les classes System.Net.ServicePointManager et System.Net.Security.SslStream peuvent utiliser le protocole SSL 3.0. Pour plus d’informations, consultez Atténuation : protocoles TLS. .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Désactive les versions TLS SystemDefault qui reviennent à une valeur par défaut de Tls12, Tls11, Tls. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Désactive les alertes côté serveur SSLStream TLS. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Contrôle si les paramètres ByRef SafeArray sur les événements d’interopérabilité COM reviennent au code natif (false) ou si le marshaling vers le code natif est désactivé (true). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Contrôle si DataContractJsonSerializer sérialise certains caractères de contrôle en fonction des normes ECMAScript V6 et V8. Pour plus d’informations, consultez Atténuation : Sérialisation des caractères de contrôle avec DataContractJsonSerializer | Microsoft Docs .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Contrôle si le DataContractJsonSerializer prend en charge plusieurs ajustements ou un seul ajustement pour un fuseau horaire. Si true, il utilise le type TimeZoneInfo pour sérialiser et désérialiser les données de date et d’heure ; sinon, il utilise le type TimeZone, qui ne prend pas en charge plusieurs règles d’ajustement. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Contrôle si System.Runtime.Serialization.ObjectManager utilise une plus grande taille de tableau lors de la sérialisation et de la désérialisation d’objets. Définissez ce commutateur sur true pour améliorer les performances de sérialisation et de désérialisation des graphiques d’objets volumineux par types, tels que BinaryFormatter. .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Contrôle si le constructeur ClaimsIdentity(IIdentity) définit la propriété ClaimsIdentity.Actor du nouvel objet avec une référence d’objet existante. Pour plus d’informations, consultez Atténuation : Constructeur ClaimsIdentity. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Contrôle si la tentative de réutilisation d’un déchiffreur AesCryptoServiceProvider lève un CryptographicException. Pour plus d’informations, voir Le déchiffreur AesCryptoServiceProvider fournit une transformation réutilisable. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Contrôle si la valeur de la propriété CspParameters.ParentWindowHandle est un IntPtr qui représente l’emplacement de mémoire d’un descripteur de fenêtre ou s’il s’agit d’un descripteur de fenêtre (HWND). Pour plus d’informations, consultez Atténuation : CspParameters.ParentWindowHandle attend un HWND. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Contrôle si l’utilisation de classes de chiffrement managées en mode FIPS lève un CryptographicException (true) ou s’appuie sur l’implémentation de bibliothèques système (false). .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Détermine si la valeur par défaut pour certaines opérations SignedCMS est SHA1 ou SHA256.
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Contrôle si la méthode ECDsaCertificateExtensions.GetECDsaPublicKey gère correctement toutes les courbes nommées prises en charge par le système d’exploitation (false) ou rétablit le comportement hérité. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Détermine si la valeur par défaut pour certaines opérations SignedXML est SHA1 ou SHA256.
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Détermine si le mode de sécurité TransportWithMessageCredential autorise les messages avec un en-tête « à » non signé. Il est nécessaire d'accepter ce commutateur. Pour plus d’informations, voir Modifications de runtime dans .NET Framework 4.6.1. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Contrôle si le constructeur AddressHeaderCollection(IEnumerable<AddressHeader>) lève une ArgumentException si l’un des éléments est null. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Détermine si la tentative d’utilisation de certificats X509 avec un fournisseur de stockage de clés CSG lève une exception. Pour plus d’informations, voir La sécurité du transport WCF prend en charge les certificats stockés à l’aide de CNG. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Lorsque vous utilisez le transport HTTP avec un service auto-hébergé, la définition de cette valeur sur true fait que WCF ignore une application qui ajoute l’en-tête Connection: close aux en-têtes de réponse d’une requête. La définition de cette valeur sur false permet d’ajouter l’en-tête Connection: close aux en-têtes de réponse, ce qui entraîne la fermeture du socket de requête après l’envoi d’une réponse. .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Gère les interblocages qui résultent de la restriction des instances d’un service réentrant à un seul thread d’exécution à la fois. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Détermine avec Switch.System.Net.DontEnableSchUseStrongCrypto si la sécurité des messages WCF utilise TLS 1.1 et TLS 1.2. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Une valeur de false incite la configuration par défaut à autoriser le système d’exploitation à choisir le protocole. La valeur de true utilise le protocole le plus élevé disponible par défaut. (Également disponible sur la branche de maintenance des versions de framework précédentes) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Détermine si l’algorithme de signature de message par défaut pour les messages MSMQ dans WCF est SHA1 ou SHA256.
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Contrôle si WCF utilise un hachage SHA1 ou SHA256 pour générer des noms aléatoires pour les canaux nommés.
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Contrôle s’il faut lever une exception NullReferenceException lorsque le message d’exception est null. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Contrôle si les exceptions levées au démarrage du service sont propagées à l’appelant de la méthode ServiceBase.Run. .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Contrôle si les instances Timer tirent parti des améliorations des performances pour les environnements à grande échelle. Si true, les améliorations de performances sont activées ; si false (valeur par défaut), elles sont désactivées. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Détermine si certains caractères encodés en pourcentage qui étaient parfois décodés demeurent désormais systématiquement encodés. Si true, ils sont décodés ; sinon, false. .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Détermine la gestion des caractères bidirectionnels Unicode dans les URI. true pour les supprimer des URI ; false pour les conserver et les encoder en pourcentage. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Détermine si Windows Presentation Foundation applique un ancien algorithme (true) ou un nouvel algorithme (false) dans l’allocation d’espace aux *-colonnes. Pour plus d’informations, consultez Atténuation : Allocation d’espace du contrôle de grille à des colonnes en étoile. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Contrôle si un sélecteur ou un contrôle d’onglet met toujours à jour la valeur de sa propriété de valeur sélectionnée avant de déclencher l’événement de modification de la sélection. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Détermine si le rendu de sélection non basé sur l’ornement est disponible pour les contrôles TextBox et PasswordBox pour empêcher le texte obstrué (false), ou si le texte est rendu uniquement dans la couche Ornement (true). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Contrôle si les indexeurs IList personnalisés sont utilisés incorrectement (true) ou correctement (false) par la classe System.Windows.Data.Binding. .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Détermine si les modifications DPI se produisent sur une base par système (valeur de false) ou par moniteur (valeur de true). .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Contrôle si les améliorations apportées au dimensionnement des contrôles dans un System.Windows.Interop.HwndHost lorsque WPF est exécuté en mode compatible par moniteur sont désactivées (true) ou activées (false). .NET Framework 4.8
Switch.System.Windows.Forms.
DisconnectUiaProvidersOnWmDestroy
Contrôle si les fournisseurs sont déconnectés lorsque la fenêtre de contrôle correspondante est détruite (true) ou non (false). Ce commutateur fournit un correctif de performances pour résoudre une fuite d’objets IRawElementProviderSimple . .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Détermine si le développeur doit gérer spécifiquement gérer l’action DomainUpDown.UpButton() lorsque du texte de contrôle est présent. true pour gérer l’action UpButton() ; false pour que les actions DomainUpDown.UpButton() et DomainUpDown.DownButton() soient correctement synchronisées. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Désactive le code qui permet à une implémentation personnalisée IMessageFilter.PreFilterMessage de filtrer les messages en toute sécurité sans lever d’exception lorsque la méthode Application.FilterMessage est appelée. Pour plus d’informations, consultez Atténuation : implémentations IMessageFilter.PreFilterMessage personnalisées. .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Détermine si la propriété ContextMenuStrip.SourceControl renvoie le contrôle de code source lorsque l’utilisateur ouvre le menu à partir d’un contrôle imbriqué ToolStripMenuItem. true pour retourner null, le comportement hérité ; false pour retourner le contrôle de code source. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Contrôle si la prise en charge de l’appel d’info-bulle est désactivée (true) ou activée (false). L’activation de la prise en charge de l’appel d’info-bulle nécessite également que les fonctionnalités d’accessibilité héritées définies par Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2 et Switch.UseLegacyAccessibilityFeatures.3 soient toutes désactivées (définies sur false). .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Détermine si une pile tactile/stylet facultative WM_POINTERest activée dans les applications WPF. Pour plus d’informations, consultez Atténuation : Prise en charge du pointeur tactile et du stylet. .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Détermine si l’algorithme de hachage par défaut utilisé pour les sommes de contrôle est SHA256 (false) ou SHA1 (true).
En raison de problèmes de collision avec SHA-1, Microsoft recommande SHA-256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Contrôle si une exception héritée NullReferenceException est levée au lieu de l’exception qui indique plus spécifiquement la cause de l’exception (par exemple , une exception DirectoryNotFoundException ou FileNotFoundException). Elle est destinée à être utilisée par le code qui dépend de la gestion deNullReferenceException. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Contrôle si le hachage de somme de contrôle des fichiers XOML dans les builds de projet de workflow utilise l’algorithme MD5 (true) ou s’il utilise l’algorithme SHA256 introduit comme valeur par défaut dans .NET Framework 4.8.
En raison de problèmes de collision avec MD5, Microsoft recommande SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Contrôle si le hachage de la somme de contrôle par SqlTrackingService utilise l’algorithme MD5 (true) pour les chaînes mises en cache, ou s’il utilise l’algorithme SHA256 introduit comme valeur par défaut dans .NET Framework 4.8.
En raison de problèmes de collision avec MD5, Microsoft recommande SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Contrôle si le hachage de la somme de contrôle par le runtime de workflow utilise l’algorithme MD5 (true) pour les définitions de workflow mises en cache, ou s’il utilise l’algorithme SHA256 introduit comme valeur par défaut dans .NET Framework 4.8.
En raison de problèmes de collision avec MD5, Microsoft recommande SHA256.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Contrôle si les fonctionnalités d’accessibilité disponibles à partir de .NET Framework 4.7.1 sont activées ou désactivées. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Contrôle si les fonctionnalités d’accessibilité disponibles dans .NET Framework 4.7.2 sont activées (false) ou désactivées (true). Si true, Switch.UseLegacyAccessibilityFeatures doit également être true pour activer les fonctionnalités d’accessibilité de .NET Framework 4.7.1. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Contrôle si les fonctionnalités d’accessibilité introduites dans .NET Framework 4.8 sont activées (false) ou désactivées (true). Si true, Switch.UseLegacyAccessibilityFeatures et Switch.UseLegacyAccessibilityFeatures.2 doivent également être true. .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Contrôle si les info-bulles sont affichées lorsqu’un utilisateur pointe le curseur de la souris sur un contrôle WPF (true), ou si elles sont affichées à la fois sur le focus clavier et via la touche de raccourci clavier (false, le comportement par défaut). Pour les applications s’exécutant sur .NET Framework 4.8, mais ciblant des versions antérieures de .NET Framework, l’activation du focus clavier et de la prise en charge des touches de raccourci nécessite que Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2et Switch.UseLegacyAccessibilityFeatures.3 soient tous définis sur false. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Contrôle si les séquences de clés vides dans les clés composées sont ignorées par la validation de schéma XSD. Pour plus d’informations, consultez Atténuation : validation de schéma XML. .NET Framework 4.6

Notes

Au lieu d’ajouter un élément AppContextSwitchOverrides à un fichier de configuration d’application, vous pouvez également définir les commutateurs par programmation en appelant la méthode AppContext.SetSwitch.

Les développeurs de bibliothèques peuvent également définir des commutateurs personnalisés pour permettre aux appelants de refuser les fonctionnalités modifiées introduites dans les versions ultérieures de leurs bibliothèques. Pour plus d'informations, consultez la classe AppContext.

Commutateurs dans les applications ASP.NET

Vous pouvez configurer une application ASP.NET pour utiliser les paramètres de compatibilité en ajoutant un <élément Add> à la <section appSettings> du fichier web.config.

L’exemple suivant utilise l’élément <add> pour ajouter deux paramètres à la section <appSettings> d’un fichier web.config :

<appSettings>
  <add key="AppContext.SetSwitch:Switch.System.Globalization.NoAsyncCurrentCulture" value="true" />
  <add key="AppContext.SetSwitch:Switch.System.Uri.DontEnableStrictRFC3986ReservedCharacterSets" value="true" />
</appSettings>

Exemple

L’exemple suivant utilise l’élément AppContextSwitchOverrides pour définir un commutateur de compatibilité d’application unique, Switch.System.Globalization.NoAsyncCurrentCulture, qui empêche la culture de circuler entre les threads dans les appels de méthode asynchrones.

<configuration>
   <runtime>
      <AppContextSwitchOverrides value="Switch.System.Globalization.NoAsyncCurrentCulture=true" />
   </runtime>
</configuration>

L’exemple suivant utilise l’élément AppContextSwitchOverrides pour définir deux commutateurs de compatibilité d’application, Switch.System.Globalization.NoAsyncCurrentCulture et Switch.System.IO.BlockLongPaths. Un point-virgule sépare les deux paires nom/valeur.

<configuration>
    <runtime>
       <AppContextSwitchOverrides
          value="Switch.System.Globalization.NoAsyncCurrentCulture=true;Switch.System.IO.BlockLongPaths=true" />
    </runtime>
</configuration>

Voir aussi