<Elemento AppContextSwitchOverrides>

Definisce una o più opzioni di compatibilità usate dalla classe AppContext per fornire un meccanismo di rifiuto esplicito per la nuova funzionalità.

<Configurazione>
  <runtime>
    <AppContextSwitchOverrides>

Sintassi

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

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
value Obbligatorio. Definisce uno o più nomi di opzione e i relativi valori booleani associati.

Attributo value

Valore Descrizione
"name=value" Nome dell'opzione predefinito insieme al relativo valore (true o false). Più coppie nome/valore switch sono separate da punto e virgola (";"). Per un elenco dei nomi di commutatori predefiniti supportati da .NET Framework, vedere la sezione Osservazioni.

Elementi figlio

Nessuno.

Elementi padre

elemento Descrizione
configuration Elemento radice in ciascun file di configurazione usato in Common Language Runtime e nelle applicazioni .NET Framework.
runtime Contiene informazioni sulle opzioni di inizializzazione in fase di esecuzione.

Osservazioni:

A partire da .NET Framework 4.6, l'elemento <AppContextSwitchOverrides> in un file di configurazione consente ai chiamanti di un'API di determinare se l'app può sfruttare nuove funzionalità o mantenere la compatibilità con le versioni precedenti di una libreria. Ad esempio, se il comportamento di un'API è cambiato tra due versioni di una libreria, l'elemento <AppContextSwitchOverrides> consente ai chiamanti di tale API di rifiutare esplicitamente il nuovo comportamento nelle versioni della libreria che supportano la nuova funzionalità. Per le app che chiamano API in .NET Framework, l'elemento <AppContextSwitchOverrides> può anche consentire ai chiamanti le cui app sono destinate a una versione precedente di .NET Framework di acconsentire esplicitamente a nuove funzionalità se l'app è in esecuzione in una versione di .NET Framework che include tale funzionalità.

L'attributo value dell'elemento <AppContextSwitchOverrides> è costituito da una singola stringa costituita da una o più coppie nome/valore delimitate da punto e virgola. Ogni nome identifica un'opzione di compatibilità e il valore corrispondente è un valore booleano (true o false) che indica se l'opzione è impostata. Per impostazione predefinita, l'opzione è falsee le librerie forniscono le nuove funzionalità. Forniscono la funzionalità precedente solo se l'opzione è impostata , ovvero il relativo valore è true. Ciò consente alle librerie di fornire un nuovo comportamento per un'API esistente, consentendo ai chiamanti che dipendono dal comportamento precedente di rifiutare esplicitamente la nuova funzionalità.

.NET Framework supporta le opzioni seguenti:

Cambia nome Descrizione Presentazione
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Controlla se Windows Presentation Foundation usa un algoritmo legacy per il layout del controllo. Per altre informazioni, vedere Mitigazione: Layout WPF. .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Controlla se l'algoritmo predefinito usato per firmare parti di un pacchetto da PackageDigitalSignatureManager è SHA1 o SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Se impostato su false, consente il debug di progetti di flusso di lavoro basati su XAML con Visual Studio quando FIPS è abilitato. Senza di esso, viene generata un'eccezione NullReferenceException nelle chiamate ai metodi nell'assembly System.Activities. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Controlla se il checksum per un'istanza del flusso di lavoro nel debugger usa MD5 o SHA1. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Controlla se l'hash del checksum del flusso di lavoro usa l'algoritmo SHA1 introdotto come predefinito in .NET Framework 4.7 (true) o se usa l'algoritmo SHA256 predefinito introdotto come predefinito in .NET Framework 4.8 (false).
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Controlla se le tracce dello stack ottengono quando si usano file PDF portabili possono includere informazioni sul file di origine e sulla riga. false per includere informazioni sul file di origine e sulla riga; in caso contrario, true. .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Controlla se il Icon.ToBitmap metodo genera un'eccezione quando un Icon oggetto ha frame PNG. Per altre informazioni, vedere Mitigazione: Frame PNG in oggetti icona. .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Determina se System.Drawing.Text.PrivateFontCollection gli oggetti vengono eliminati correttamente quando vengono aggiunti all'insieme dal PrivateFontCollection.AddFontFile(String) metodo . true per mantenere il comportamento legacy; false per eliminare tutti gli oggetti carattere privati. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Controlla se le prestazioni di PrintPreviewDialog è ottimizzata per le stampanti di rete. Per altre informazioni, vedere Cenni preliminari sul controllo PrintPreviewDialog. .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Controlla se vengono applicati controlli dell'intervallo di anni per le ere del calendario giapponese. true per applicare i controlli dell'intervallo di anni e false disabilitarli (comportamento predefinito). Per altre informazioni, vedere Uso dei calendari. .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Controlla se solo "1" viene riconosciuto come primo anno di un'era del calendario giapponese nelle operazioni di analisi. true riconoscere solo "1"; false per riconoscere "1" o Gannen (comportamento predefinito). Per altre informazioni, vedere Uso dei calendari. .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Controlla se il primo anno di un'era del calendario giapponese è rappresentato come "1" o Gannen nelle operazioni di formattazione. true per formattare il primo anno dell'era come "1"; false per formattarlo come Gannen (comportamento predefinito). Per altre informazioni, vedere Uso dei calendari. .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Controlla se le operazioni asincrone non vengono propagate dal contesto del thread chiamante. Per altre informazioni, vedere CurrentCulture e CurrentUICulture flow across tasks.For more information, see CurrentCulture and CurrentUICulture flow across tasks. .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Controlla se il X509CertificateClaimSet.FindClaims metodo tenta di corrispondere al tipo di attestazione solo con l'ultima voce DNS. Per altre informazioni, vedere Mitigazione: Metodo X509CertificateClaimSet.FindClaims. .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Controlla se consentire a AuthorizationContext.Empty di restituire un oggetto modificabile. .NET Framework 4.6
Switch.System.IO.BlockLongPaths Controlla se i percorsi più lunghi di MAX_PATH (260 caratteri) generano un'eccezione PathTooLongException. Per altre informazioni, vedere Supporto per percorsi lunghi. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Controlla se le routine native del sistema operativo vengono usate per la decompressione dalla DeflateStream classe . false per usare le API native; true per usare l'implementazione DeflateStream . .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Usa la barra rovesciata ("\") anziché la barra ("/") come separatore di percorso nella ZipArchiveEntry.FullName proprietà . Per altre informazioni, vedere Mitigation: ZipArchiveEntry.FullName Path Separator (Mitigazione: Separatore di percorsi ZipArchiveEntry.FullName). .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Controlla se le eccezioni del sistema operativo generate nei thread in background creati con SerialPort flussi terminano il processo. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Controlla se viene usata la normalizzazione del percorso legacy e i percorsi URI sono supportati dai Path.GetDirectoryName metodi e Path.GetPathRoot . Per altre informazioni, vedere Mitigazione: normalizzazione del percorso e mitigazione: controlli dei due punti di percorso. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Controlla se un test di uguaglianza confronta la MemberDescriptor.Category proprietà di un oggetto con la MemberDescriptor.Description proprietà del secondo oggetto. Per altre informazioni, vedere Implementazione errata di MemberDescriptor.Equals. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Disabilita la convalida dell'identificatore di oggetto EKU (Enhanced Key Usage) del certificato. Un'estensione di utilizzo chiavi avanzato (EKU) è una raccolta di identificatori di oggetto (OID) che indica le applicazioni che usano la chiave. .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Disabilita la mitigazione TLS1.0 Browser Exploit Against SSL/TLS (BEAST) disabilitando l'uso di SCH_edizione Standard ND_AUX_RECORD. .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Controlla se le System.Net.ServicePointManager classi e System.Net.Security.SslStream possono usare il protocollo SSL 3.0. Per altre informazioni, vedere Mitigazione: Protocolli TLS. .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Disabilita le versioni tls predefinite di SystemDefault ripristinando il valore predefinito di Tls12, Tls11, Tls. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Disabilita gli avvisi lato server TLS SslStream. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Controlla se i parametri ByRef Cassaforte Array sugli eventi di interoperabilità COM esegue il marshalling al codice nativo (false) o se il marshalling al codice nativo è disabilitato (true). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Controlla se DataContractJsonSerializer serializza alcuni caratteri di controllo in base agli standard ECMAScript V6 e V8. Per altre informazioni, vedere Mitigazione: Serializzazione dei caratteri di controllo con DataContractJsonSerializer .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Controlla se DataContractJsonSerializer supporta più regolazioni o solo una singola regolazione per un fuso orario. Se true, usa il TimeZoneInfo tipo per serializzare e deserializzare i dati di data e ora; in caso contrario, usa il TimeZone tipo , che non supporta più regole di regolazione. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Controlla se System.Runtime.Serialization.ObjectManager utilizza una dimensione di matrice maggiore durante la serializzazione e la deserializzazione degli oggetti. Impostare questa opzione su per migliorare le prestazioni della serializzazione e della deserializzazione di grafici di oggetti di grandi dimensioni in base a true tipi come BinaryFormatter. .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Controlla se il ClaimsIdentity(IIdentity) costruttore imposta la proprietà del ClaimsIdentity.Actor nuovo oggetto con un riferimento all'oggetto esistente. Per altre informazioni, vedere Mitigazione: Costruttore ClaimsIdentity. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Controlla se il tentativo di riutilizzare un AesCryptoServiceProvider decrittografia genera un'eccezione CryptographicException. Per altre informazioni, vedere Decrittografia AesCryptoServiceProvider fornisce una trasformazione riutilizzabile. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Controlla se il valore della proprietà CspParameters.ParentWindowHandle è un Oggetto IntPtr che rappresenta la posizione di memoria di un handle di finestra o se si tratta di un handle di finestra (HWND). Per altre informazioni, vedere Mitigazione: CspParameters.ParentWindowHandle prevede un HWND. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Controlla se l'uso di classi di crittografia gestite in modalità FIPS genera (CryptographicExceptiontrue) o si basa sull'implementazione delle librerie di sistema (false). .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Determina se l'impostazione predefinita per alcune operazioni SignedCMS è SHA1 o SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Controlla se il ECDsaCertificateExtensions.GetECDsaPublicKey metodo gestisce correttamente tutte le curve denominate supportate dal sistema operativo (false) o ripristina il comportamento legacy. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Determina se l'impostazione predefinita per alcune operazioni SignedXML è SHA1 o SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Determina se la TransportWithMessageCredential modalità di sicurezza consente i messaggi con un'intestazione "to" senza segno. Si tratta di un'opzione di consenso esplicito. Per altre informazioni, vedere Modifiche di runtime in .NET Framework 4.6.1. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Controlla se il AddressHeaderCollection(IEnumerable<AddressHeader>) costruttore genera un'eccezione ArgumentException se uno degli elementi è null. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Determina se il tentativo di usare certificati X509 con un provider di archiviazione chiavi CSG genera un'eccezione. Per altre informazioni, vedere Sicurezza del trasporto WCF supporta i certificati archiviati tramite CNG. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Quando si usa il trasporto HTTP con un servizio self-hosted, l'impostazione di questo valore su true fa sì che WCF ignori un'applicazione aggiungendo l'intestazione Connection: close alle intestazioni di risposta per una richiesta. L'impostazione di questo valore su false consente di aggiungere l'intestazione Connection: close alle intestazioni di risposta, che comporta la chiusura del socket della richiesta dopo l'invio di una risposta. .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Gestisce i deadlock risultanti dalla limitazione delle istanze di un servizio rientrante a un singolo thread di esecuzione alla volta. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Switch.System.Net.DontEnableSchUseStrongCryptoInsieme a , determina se la sicurezza dei messaggi WCF usa TLS 1.1 e TLS 1.2. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Un valore di false imposta la configurazione predefinita per consentire al sistema operativo di scegliere il protocollo. Il valore true predefinito imposta il protocollo più alto disponibile. (Disponibile anche nel ramo di manutenzione delle versioni precedenti del framework) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Determina se l'algoritmo di firma del messaggio predefinito per i messaggi MSMQ in WCF è SHA1 o SHA256.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Controlla se WCF usa un hash SHA1 o SHA256 per generare nomi casuali per named pipe.
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Controlla se generare un'eccezione NullReferenceException quando il messaggio di eccezione è Null. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Controlla se le eccezioni generate all'avvio del servizio vengono propagate al chiamante del ServiceBase.Run metodo . .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Controlla se Timer le istanze sfruttano i miglioramenti delle prestazioni per gli ambienti su larga scala. Se true, i miglioramenti delle prestazioni sono abilitati; se false (il valore predefinito), vengono disabilitati. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Determina se alcuni caratteri codificati in percentuale che a volte sono stati decodificati vengono ora codificati in modo coerente. Se true, vengono decodificati; in caso contrario, false. .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Determina la gestione dei caratteri bidirezionali Unicode negli URI. true per spogliarli dagli URI; false per conservarli e codificarli in percentuale. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Determina se Windows Presentation Foundation applica un algoritmo precedente (true) o un nuovo algoritmo (false) nell'allocazione di spazio a *-columns. Per altre informazioni, vedere Mitigazione: Allocazione dello spazio di controllo della griglia alle colonne a stella. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Controlla se un selettore o un controllo struttura a schede aggiorna sempre il valore della proprietà valore selezionata prima di generare l'evento di selezione modificato. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Determina se il rendering della selezione non basato su Adorner è disponibile per i controlli e PasswordBox per impedire il TextBox testo occluso (false) o se il rendering del testo viene eseguito solo nel livello Adorner (true). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Controlla se gli indicizzatori IList personalizzati vengono usati in modo non corretto (true) o correttamente (false) dalla System.Windows.Data.Binding classe . .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Determina se le modifiche DPI si verificano in un sistema (valore ) falseo in base al monitoraggio (valore ).true .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Controlla se i miglioramenti apportati al dimensionamento dei controlli in un System.Windows.Interop.HwndHost oggetto quando WPF viene eseguito in modalità compatibile con ogni monitor sono disabilitati (true) o abilitati (false). .NET Framework 4.8
Switch.System.Windows.Forms.
DisconnectUiaProvidersOnWmDestroy
Controlla se i provider vengono disconnessi quando la finestra di controllo corrispondente viene eliminata definitivamente (true) o meno (false). Questa opzione fornisce un consenso esplicito a una correzione delle prestazioni per risolvere una perdita di IRawElementProviderSimple oggetti. .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Determina se lo sviluppatore deve gestire in modo specifico l'azione DomainUpDown.UpButton() quando è presente il testo del controllo. true per gestire l'azione UpButton() ; false affinché le DomainUpDown.UpButton() azioni e DomainUpDown.DownButton() siano sincronizzate correttamente. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Rifiuta esplicitamente il codice che consente a un'implementazione personalizzata IMessageFilter.PreFilterMessage di filtrare in modo sicuro i messaggi senza generare un'eccezione quando viene chiamato il Application.FilterMessage metodo . Per altre informazioni, vedere Mitigazione: Implementazioni IMessageFilter.PreFilterMessage personalizzate. .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Determina se la ContextMenuStrip.SourceControl proprietà restituisce il controllo del codice sorgente quando l'utente apre il menu da un controllo annidato ToolStripMenuItem . true per restituire null, il comportamento legacy; false per restituire il controllo del codice sorgente. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Controlla se il supporto per la chiamata alla descrizione comando è disabilitato (true) o abilitato (false). L'abilitazione del supporto per la chiamata alla descrizione comando richiede anche funzionalità di accessibilità legacy definite da Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 tutte devono essere disabilitate (impostate su false). .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Determina se uno stack di tocco/stilo basato su facoltativo WM_POINTERè abilitato nelle applicazioni WPF. Per altre informazioni, vedere Mitigazione: Supporto tocco e stilo basato su puntatore .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Determina se l'algoritmo hash predefinito usato per i checksum è SHA256 (false) o SHA1 (true).
A causa di problemi di conflitto con SHA1, Microsoft consiglia SHA256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Controlla se viene generata un'eccezione NullReferenceException legacy anziché l'eccezione che indica in modo più specifico la causa dell'eccezione, ad esempio directoryNotFoundExceptiono FileNotFoundException. È destinato all'uso da parte del codice che dipende dalla gestione dell'eccezione NullReferenceException. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Controlla se l'hash di checksum dei file XOML nelle compilazioni del progetto flusso di lavoro usa l'algoritmo MD5 (true) o se usa l'algoritmo SHA256 introdotto come predefinito in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Controlla se l'hashing checksum da SqlTrackingService usa l'algoritmo MD5 (true) per le stringhe memorizzate nella cache o se usa l'algoritmo SHA256 introdotto come predefinito in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Controlla se l'hashing checksum da parte del runtime del flusso di lavoro usa l'algoritmo MD5 (true) per le definizioni del flusso di lavoro memorizzate nella cache o se usa l'algoritmo SHA256 introdotto come predefinito in .NET Framework 4.8.
A causa di problemi di collisione con MD5, Microsoft consiglia SHA256.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Controlla se le funzionalità di accessibilità disponibili a partire da .NET Framework 4.7.1 sono abilitate o disabilitate. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Controlla se le funzionalità di accessibilità disponibili in .NET Framework 4.7.2 sono abilitate (false) o disabilitate (true). Se true, Switch.UseLegacyAccessibilityFeatures deve anche essere true per abilitare le funzionalità di accessibilità di .NET Framework 4.7.1. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Controlla se le funzionalità di accessibilità introdotte in .NET Framework 4.8 sono abilitate (false) o disabilitate (true). Se truee Switch.UseLegacyAccessibilityFeaturesSwitch.UseLegacyAccessibilityFeatures.2 deve essere trueanche . .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Controlla se le descrizioni comandi vengono visualizzate quando un utente passa il puntatore del mouse su un controllo WPF (true) o se vengono visualizzate sia sullo stato attivo della tastiera che tramite il tasto di scelta rapida da tastiera (falseil comportamento predefinito). Per le applicazioni in esecuzione in .NET Framework 4.8 ma destinate alle versioni precedenti di .NET Framework, l'abilitazione sia dello stato attivo della tastiera che del supporto dei tasti di scelta rapida richiede che Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 tutti siano impostati su false. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Controlla se le sequenze di chiavi vuote nelle chiavi composte vengono ignorate dalla convalida dello schema XSD. Per altre informazioni, vedere Mitigazione: convalida di XML Schema. .NET Framework 4.6

Nota

Anziché aggiungere un AppContextSwitchOverrides elemento a un file di configurazione dell'applicazione, è anche possibile impostare le opzioni a livello di codice chiamando il AppContext.SetSwitch metodo .

Gli sviluppatori di librerie possono anche definire opzioni personalizzate per consentire ai chiamanti di rifiutare esplicitamente le funzionalità modificate introdotte nelle versioni successive delle librerie. Per altre informazioni, vedere la classe AppContext.

Opzioni nelle app di ASP.NET

È possibile configurare un'applicazione ASP.NET per usare le impostazioni di compatibilità aggiungendo un elemento Add> all'app <Impostazioni> sezione del file web.config.<

Nell'esempio seguente viene usato l'elemento <add> per aggiungere due impostazioni alla <appSettings> sezione di un file web.config:

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

Esempio

Nell'esempio seguente viene usato l'elemento AppContextSwitchOverrides per definire un singolo commutatore di compatibilità dell'applicazione, Switch.System.Globalization.NoAsyncCurrentCulture, che impedisce il flusso delle impostazioni cultura tra i thread nelle chiamate di metodo asincrone.

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

Nell'esempio seguente viene usato l'elemento AppContextSwitchOverrides per definire due opzioni Switch.System.Globalization.NoAsyncCurrentCulture di compatibilità delle applicazioni e Switch.System.IO.BlockLongPaths. Un punto e virgola separa le due coppie nome/valore.

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

Vedi anche