É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_POINTER est 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.2 et 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>