Partilhar via


<Elemento AppContextSwitchOverrides>

Define uma ou mais opções usadas pela AppContext classe para fornecer um mecanismo de exclusão para novas funcionalidades.

<configuração>
  <tempo de execução>
    <AppContextSwitchOverrides>

Sintaxe

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

Atributos e Elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Description
value Obrigatório. Define um ou mais nomes de switch e seus valores booleanos associados.

atributo value

valor Description
"nome=valor" Um nome de switch predefinido junto com seu valor (true ou false). Vários pares nome/valor do switch são separados por ponto-e-vírgula (";"). Para obter uma lista de nomes de switch predefinidos suportados pelo .NET Framework, consulte a seção Comentários.

Elementos Subordinados

Nenhum.

Elementos Principais

Elemento Description
configuration O elemento raiz em cada arquivo de configuração usado pelo Common Language Runtime e aplicativos .NET Framework.
runtime Contém informações sobre opções de inicialização de tempo de execução.

Observações

A partir do .NET Framework 4.6, o elemento em um arquivo de configuração permite que os chamadores de uma API determinem se seu aplicativo pode aproveitar a nova funcionalidade ou preservar a <AppContextSwitchOverrides> compatibilidade com versões anteriores de uma biblioteca. Por exemplo, se o comportamento de uma API tiver sido alterado entre duas versões de uma biblioteca, o <AppContextSwitchOverrides> elemento permitirá que os chamadores dessa API desativem o novo comportamento em versões da biblioteca que ofereçam suporte à nova funcionalidade. Para aplicativos que chamam APIs no .NET Framework, o <AppContextSwitchOverrides> elemento também pode permitir que chamadores cujos aplicativos se destinam a uma versão anterior do .NET Framework aceitem a nova funcionalidade se seu aplicativo estiver sendo executado em uma versão do .NET Framework que inclua essa funcionalidade.

O value atributo do elemento consiste em uma única cadeia de <AppContextSwitchOverrides> caracteres que consiste em um ou mais pares nome/valor delimitados por ponto-e-vírgula. Cada nome identifica uma opção de compatibilidade, e seu valor correspondente é um booleano (true ou false) que indica se a opção está definida. Por padrão, a opção é false, e as bibliotecas fornecem a nova funcionalidade. Eles só fornecem a funcionalidade anterior se o switch estiver definido (ou seja, seu valor for true). Isso permite que as bibliotecas forneçam um novo comportamento para uma API existente e, ao mesmo tempo, permite que os chamadores que dependem do comportamento anterior desativem a nova funcionalidade.

O .NET Framework suporta as seguintes opções:

Nome do interruptor Description Introduzido
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Controla se o Windows Presentation Foundation usa um algoritmo herdado para layout de controle. Para obter mais informações, consulte Mitigação: layout do WPF. .NET framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Controla se o algoritmo padrão usado para assinar partes de um pacote por PackageDigitalSignatureManager é SHA1 ou SHA256.
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Quando definido como false, permite a depuração de projetos de fluxo de trabalho baseados em XAML com o Visual Studio quando o FIPS está habilitado. Sem ele, um NullReferenceException é lançado em chamadas para métodos no assembly System.Activities. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Controla se a soma de verificação de uma instância de fluxo de trabalho no depurador usa MD5 ou SHA1. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Controla se o hash de soma de verificação do fluxo de trabalho usa o algoritmo SHA1 introduzido como padrão no .NET Framework 4.7 (true), ou se usa o algoritmo SHA256 padrão introduzido como padrão no .NET Framework 4.8 (false).
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Controla se os rastreamentos de pilha obtidos ao usar PDBs portáteis podem incluir informações de arquivo e linha de origem. false incluir informações sobre o ficheiro de origem e a linha; caso contrário, true. .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Controla se o Icon.ToBitmap método lança uma exceção quando um Icon objeto tem quadros PNG. Para obter mais informações, consulte Mitigação: quadros PNG em objetos de ícone. .NET framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Determina se System.Drawing.Text.PrivateFontCollection os PrivateFontCollection.AddFontFile(String) objetos são descartados corretamente quando adicionados à coleção pelo método. true manter o comportamento legado; false para descartar todos os objetos de fonte privados. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Controla se o PrintPreviewDialog desempenho do é otimizado para impressoras de rede. Para obter mais informações, consulte Visão geral do controle PrintPreviewDialog. .NET framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Controla se as verificações de intervalo de anos para eras do calendário japonês são impostas. true para impor verificações de intervalo de anos e false desativá-las (o comportamento padrão). Para obter mais informações, consulte Trabalhando com calendários. .NET framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Controla se apenas "1" é reconhecido como o primeiro ano de uma era de calendário japonês em operações de análise. true reconhecer apenas "1"; false para reconhecer "1" ou Gannen (o comportamento padrão). Para obter mais informações, consulte Trabalhando com calendários. .NET framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Controla se o primeiro ano de uma era de calendário japonês é representado como "1" ou Gannen em operações de formatação. true formatar o primeiro ano da era como "1"; false para formatá-lo como Gannen (o comportamento padrão). Para obter mais informações, consulte Trabalhando com calendários. .NET framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Controla se as operações assíncronas não fluem do contexto do thread de chamada. Para obter mais informações, consulte CurrentCulture e CurrentUICulture flow entre tarefas. .NET framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Controla se o X509CertificateClaimSet.FindClaims método tenta corresponder ao tipo de declaração somente com a última entrada DNS. Para obter mais informações, consulte Mitigação: Método X509CertificateClaimSet.FindClaims. .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Controla se AuthorizationContext.Empty deve ser permitido para retornar um objeto mutável. .NET framework 4.6
Switch.System.IO.BlockLongPaths Controla se caminhos maiores que MAX_PATH (260 caracteres) lançam um PathTooLongExceptionarquivo . Para obter mais informações, consulte Suporte de caminho longo. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Controla se as rotinas nativas do DeflateStream sistema operacional são usadas para descompactação pela classe. false usar APIs nativas; true para usar a DeflateStream implementação. .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Usa a barra invertida ("\") em vez da barra ("/") como separador de ZipArchiveEntry.FullName caminho na propriedade. Para obter mais informações, consulte Mitigação: Separador de caminho ZipArchiveEntry.FullName. .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Controla se as exceções do sistema operacional lançadas em threads em segundo plano criados com SerialPort fluxos encerram o processo. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Controla se a normalização de caminho herdado é usada e os caminhos de URI são suportados Path.GetDirectoryName pelos métodos e Path.GetPathRoot . Para obter mais informações, consulte Mitigação: normalização e mitigação de caminho: verificações de dois pontos de caminho. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Controla se um teste de igualdade compara a MemberDescriptor.Category propriedade de um objeto com a MemberDescriptor.Description propriedade do segundo objeto. Para obter mais informações, consulte Implementação incorreta de MemberDescriptor.Equals. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Desabilita a validação do identificador de objeto (OID) de uso avançado de chave (EKU) do certificado. Uma extensão de uso avançado de chave (EKU) é uma coleção de identificadores de objeto (OIDs) que indicam os aplicativos que usam a chave. .NET framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Desativa a exploração do navegador TLS1.0 contra a mitigação SSL/TLS (BEAST) desativando o uso de SCH_SEND_AUX_RECORD. .NET framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Controla se as System.Net.ServicePointManager classes e System.Net.Security.SslStream podem usar o protocolo SSL 3.0. Para obter mais informações, consulte Mitigação: protocolos TLS. .NET framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Desabilita as versões SystemDefault TLS revertendo para um padrão de Tls12, Tls11, Tls. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Desativa os alertas do lado do servidor SslStream TLS. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Controla se os parâmetros ByRef SafeArray em eventos de interoperabilidade COM retornam ao código nativo (false) ou se a empacotação de volta ao código nativo está desabilitada (true). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Controla se o DataContractJsonSerializer serializa alguns caracteres de controle com base nos padrões ECMAScript V6 e V8. Para obter mais informações, consulte Mitigação: serialização de caracteres de controle com o DataContractJsonSerializer .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Controla se o suporta vários ajustes ou apenas um único ajuste para um fuso DataContractJsonSerializer horário. Se true, ele usa o TimeZoneInfo tipo para serializar e desserializar dados de data e hora, caso contrário, ele usa o TimeZone tipo, que não suporta várias regras de ajuste. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Controla se System.Runtime.Serialization.ObjectManager usa um tamanho de matriz maior durante a serialização e desserialização de objetos. Defina essa opção para true melhorar o desempenho da serialização e desserialização de gráficos de objetos grandes por tipos como BinaryFormatter. .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Controla se o ClaimsIdentity(IIdentity) construtor define a propriedade do ClaimsIdentity.Actor novo objeto com uma referência de objeto existente. Para obter mais informações, consulte Mitigation: ClaimsIdentity Constructor. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Controla se a tentativa de reutilizar um AesCryptoServiceProvider desencriptador lança um CryptographicExceptionficheiro . Para obter mais informações, consulte O desencriptador AesCryptoServiceProvider fornece uma transformação reutilizável. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Controla se o valor da propriedade CspParameters.ParentWindowHandle é um IntPtr que representa o local da memória de um identificador de janela ou se é um identificador de janela (um HWND). Para obter mais informações, consulte Mitigação: CspParameters.ParentWindowHandle espera um HWND. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Controla se o uso de classes de criptografia gerenciadas no modo FIPS gera um CryptographicException (true) ou depende da implementação de bibliotecas do sistema (false). .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Determina se o padrão para algumas operações SignedCMS é SHA1 ou SHA256.
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Controla se o ECDsaCertificateExtensions.GetECDsaPublicKey método manipula corretamente todas as curvas nomeadas suportadas pelo sistema operacional (false) ou reverte para o comportamento herdado. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Determina se o padrão para algumas operações SignedXML é SHA1 ou SHA256.
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Determina se o TransportWithMessageCredential modo de segurança permite mensagens com um cabeçalho "para" não assinado. Esta é uma opção de aceitação. Para obter mais informações, consulte Alterações de tempo de execução no .NET Framework 4.6.1. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Controla se o AddressHeaderCollection(IEnumerable<AddressHeader>) construtor lança um ArgumentException se um dos elementos é null. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Determina se a tentativa de usar certificados X509 com um provedor de armazenamento de chaves CSG gera uma exceção. Para obter mais informações, consulte Segurança de transporte WCF suporta certificados armazenados usando CNG. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Ao usar o transporte HTTP com um serviço auto-hospedado, definir esse valor como true faz com que o WCF ignore um aplicativo que adiciona o Connection: close cabeçalho aos cabeçalhos de resposta de uma solicitação. Definir esse valor como false permite adicionar o Connection: close cabeçalho aos cabeçalhos de resposta, o que resulta no fechamento do soquete de solicitação após o envio de uma resposta. .NET framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Manipula deadlocks que resultam da restrição de instâncias de um serviço de reentrada a um único thread de execução de cada vez. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Junto com Switch.System.Net.DontEnableSchUseStrongCrypto, determina se a segurança da mensagem WCF usa TLS 1.1 e TLS 1.2. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Um valor de false define a configuração padrão para permitir que o sistema operacional escolha o protocolo. Um valor de true define o padrão para o protocolo mais alto disponível. (Também disponível na ramificação de manutenção de versões anteriores do framework) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Determina se o algoritmo de assinatura de mensagem padrão para mensagens MSMQ no WCF é SHA1 ou SHA256.
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Controla se o WCF usa um hash SHA1 ou SHA256 para gerar nomes aleatórios para pipes nomeados.
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Controla se uma NullReferenceException deve ser lançada quando a mensagem de exceção é nula. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Controla se as exceções lançadas na inicialização do serviço são propagadas para o chamador do ServiceBase.Run método. .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Controla se Timer as instâncias aproveitam as melhorias de desempenho para ambientes de alta escala. Se true, as melhorias de desempenho estão habilitadas, se false (o valor padrão), elas são desabilitadas. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Determina se determinados caracteres codificados por porcentagem que às vezes eram decodificados agora são consistentemente deixados codificados. Se true, eles são decodificados, caso contrário, false. .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Determina a manipulação de caracteres bidirecionais Unicode em URIs. true retirá-los dos URIs; false para preservá-los e codificá-los percentualmente. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Determina se o Windows Presentation Foundation aplica um algoritmo antigo (true) ou um novo algoritmo (false) na alocação de espaço para colunas *. Para obter mais informações, consulte Mitigação: alocação de espaço do controle de grade para colunas de estrela. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Controla se um seletor ou um controle de guia sempre atualiza o valor de sua propriedade de valor selecionado antes de gerar o evento de seleção alterada. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Determina se a renderização de seleção não baseada em Adorner está disponível para os TextBox controles e PasswordBox para evitar texto ocluído (false), ou se o texto é renderizado somente na camada Adorner (true). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Controla System.Windows.Data.Binding se indexadores IList personalizados são usados incorretamente (true) ou corretamente (false) pela classe. .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Determina se as alterações de DPI ocorrem por sistema (um valor de false) ou por monitor (um valor de true). .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Controla se as melhorias no dimensionamento de controles em um System.Windows.Interop.HwndHost quando o WPF é executado no modo com reconhecimento por monitor estão desabilitadas (true) ou habilitadas (false). .NET Framework 4.8
Switch.System.Windows.Forms.
DisconnectUiaProvidersOnWmDestroy
Controla se os provedores são desconectados quando a janela de controle correspondente é destruída (true) ou não (false). Esta opção fornece uma opção para uma correção de desempenho para resolver um vazamento de IRawElementProviderSimple objetos. .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Determina se o desenvolvedor precisa lidar especialmente com a ação quando o DomainUpDown.UpButton() texto de controle está presente. true para lidar com a UpButton() ação, false para que as DomainUpDown.UpButton() ações estejam DomainUpDown.DownButton() devidamente sincronizadas. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Opta por não participar do código que permite que uma implementação personalizada IMessageFilter.PreFilterMessage filtre mensagens com segurança sem lançar uma exceção quando o Application.FilterMessage método é chamado. Para obter mais informações, consulte Mitigação: implementações personalizadas de IMessageFilter.PreFilterMessage. .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Determina se a ContextMenuStrip.SourceControl propriedade retorna o controle de origem quando o usuário abre o menu de um controle aninhado ToolStripMenuItem . true para retornar null, o comportamento legado, false para retornar o controle do código-fonte. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Controla se o suporte à invocação de dica de ferramenta está desabilitado (true) ou habilitado (false). Habilitar o suporte à invocação de dica de ferramenta também requer recursos de acessibilidade herdados definidos por Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 todos devem ser desabilitados (definido como false). .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Determina se uma pilha de toque/caneta baseada em opcional WM_POINTERestá habilitada em aplicativos WPF. Para obter mais informações, consulte Mitigação: Suporte a toque e caneta baseado em ponteiro .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Determina se o algoritmo de hash padrão usado para somas de verificação é SHA256 (false) ou SHA1 (true).
Devido a problemas de colisão com SHA1, a Microsoft recomenda SHA256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Controla se um NullReferenceException herdado é lançado em vez da exceção que indica mais especificamente a causa da exceção (como um DirectoryNotFoundException ou um FileNotFoundException. Destina-se ao uso por código que depende da manipulação de NullReferenceException. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Controla se o hash de soma de verificação de arquivos XOML em compilações de projeto de fluxo de trabalho usa o algoritmo MD5 (true) ou se eles usam o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Controla se o hash de soma de verificação pelo SqlTrackingService usa o algoritmo MD5 (true) para cadeias de caracteres armazenadas em cache ou se usa o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Controla se o hash de soma de verificação pelo Workflow Runtime usa o algoritmo MD5 (true) para definições de fluxo de trabalho em cache ou se usa o algoritmo SHA256 introduzido como padrão no .NET Framework 4.8.
Devido a problemas de colisão com MD5, a Microsoft recomenda SHA256.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Controla se os recursos de acessibilidade disponíveis a partir do .NET Framework 4.7.1 estão habilitados ou desabilitados. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Controla se os recursos de acessibilidade disponíveis no .NET Framework 4.7.2 estão habilitados (false) ou desabilitados (true). Se true, Switch.UseLegacyAccessibilityFeatures também deve ser true para habilitar os recursos de acessibilidade do .NET Framework 4.7.1. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Controla se os recursos de acessibilidade introduzidos no .NET Framework 4.8 estão habilitados (false) ou desabilitados (true). Se true, Switch.UseLegacyAccessibilityFeatures e Switch.UseLegacyAccessibilityFeatures.2 também deve ser true. .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Controla se as dicas de ferramentas são exibidas quando um usuário passa o cursor do mouse sobre um controle WPF (true), ou se elas são exibidas no foco do teclado e por meio da tecla de atalho do teclado (false, o comportamento padrão). Para aplicativos executados no .NET Framework 4.8, mas destinados a versões anteriores do .NET Framework, habilitar o foco do teclado e o suporte a teclas de atalho requer que Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2e Switch.UseLegacyAccessibilityFeatures.3 todos estejam definidos como false. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Controla se as sequências de teclas vazias em chaves compostas são ignoradas pela validação do esquema XSD. Para obter mais informações, consulte Mitigação: validação de esquema XML. .NET framework 4.6

Nota

Em vez de adicionar um AppContextSwitchOverrides elemento a um arquivo de configuração do aplicativo, você também pode definir as opções programaticamente chamando o AppContext.SetSwitch método.

Os desenvolvedores de bibliotecas também podem definir opções personalizadas para permitir que os chamadores desativem a funcionalidade alterada introduzida em versões posteriores de suas bibliotecas. Para obter mais informações, consulte a AppContext classe.

Alterna em aplicativos ASP.NET

Você pode configurar um aplicativo ASP.NET para usar as configurações de compatibilidade adicionando um <elemento Add> à< seção appSettings> do arquivo web.config.

O exemplo a seguir usa o <add> elemento para adicionar duas configurações à <appSettings> seção de um arquivo web.config:

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

Exemplo

O exemplo a seguir usa o elemento para definir uma única opção de compatibilidade de aplicativo, Switch.System.Globalization.NoAsyncCurrentCulture, que impede que a AppContextSwitchOverrides cultura flua entre threads em chamadas de método assíncronas.

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

O exemplo a seguir usa o AppContextSwitchOverrides elemento para definir duas opções Switch.System.Globalization.NoAsyncCurrentCulture de compatibilidade de aplicativos e Switch.System.IO.BlockLongPaths. Um ponto-e-vírgula separa os dois pares nome/valor.

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

Consulte também