<AppContextSwitchOverrides>, element

Definiuje co najmniej jeden przełącznik używany przez klasę w celu zapewnienia AppContext mechanizmu rezygnacji dla nowych funkcji.

<configuration>
  <runtime>
    <AppContextSwitchOverrides>

Składnia

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

Atrybuty i elementy

W poniższych sekcjach opisano atrybuty, elementy podrzędne i elementy nadrzędne.

Atrybuty

Atrybut Opis
value Atrybut wymagany.

Definiuje co najmniej jedną nazwę przełącznika i skojarzone z nimi wartości logiczne.

value, atrybut

Wartość Opis
"name=value" Wstępnie zdefiniowana nazwa przełącznika wraz z jej wartością ( true lub false ). Wiele par nazwa/wartość przełącznika jest rozdzielonych średnikami (";"). Aby uzyskać listę wstępnie zdefiniowanych nazw przełączników obsługiwanych przez .NET Framework, zobacz sekcję Uwagi.

Elementy podrzędne

Brak.

Elementy nadrzędne

Element Opis
configuration Element główny w każdym pliku konfiguracji używanym przez środowisko uruchomieniowe języka wspólnego i aplikacje programu .NET Framework.
runtime Zawiera informacje dotyczące opcji inicjowania środowiska uruchomieniowego.

Uwagi

Począwszy od wersji .NET Framework 4.6, element w pliku konfiguracji umożliwia wywołującym interfejs API określenie, czy ich aplikacja może korzystać z nowych funkcji, czy zachować zgodność z poprzednimi wersjami <AppContextSwitchOverrides> biblioteki. Jeśli na przykład zachowanie interfejsu API zmieniło się między dwiema wersjami biblioteki, element umożliwia wywołującym ten interfejs API rezygnację z nowego zachowania w wersjach biblioteki, które obsługują nowe <AppContextSwitchOverrides> funkcje. W przypadku aplikacji, które wywołują interfejsy API w interfejsie .NET Framework, element może również zezwolić obiektom wywołującym, których aplikacje są ukierunkowane na wcześniejszą wersję usługi .NET Framework, na rezygnację z nowej funkcji, jeśli ich aplikacja jest uruchomiona w wersji .NET Framework, która obejmuje tę <AppContextSwitchOverrides> funkcję.

Atrybut elementu składa się z jednego ciągu, który składa się z co najmniej jednej pary nazwa/wartość rozdzielonych value <AppContextSwitchOverrides> średnikami. Każda nazwa identyfikuje przełącznik zgodności, a odpowiadająca mu wartość to wartość logiczna ( lub ), która wskazuje, czy true false przełącznik jest ustawiony. Domyślnie przełącznik to false , a biblioteki zapewniają nowe funkcje. Zapewniają one poprzednią funkcjonalność tylko wtedy, gdy przełącznik jest ustawiony (to oznacza, że jego wartość to true ). Dzięki temu biblioteki mogą zapewnić nowe zachowanie dla istniejącego interfejsu API, jednocześnie zezwalając wywołującym, którzy są zależni od poprzedniego zachowania, na rezygnację z nowych funkcji.

.NET Framework obsługuje następujące przełączniki:

Nazwa przełącznika Opis Wprowadzono
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Określa, Windows Presentation Foundation używa starszego algorytmu do układu sterowania. Aby uzyskać więcej informacji, zobacz Mitigation: WPF Layout (Środki zaradcze: układ WPF). Program .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Określa, czy domyślnym algorytmem używanym do podpisywania części pakietu przez packageDigitalSignatureManager jest SHA1 lub SHA256.
Ze względu na problemy z kolizją z sha1 firma Microsoft zaleca SHA256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
W przypadku ustawienia na wartość umożliwia debugowanie projektów przepływu pracy opartych na języku XAML Visual Studio false po włączeniu funkcji FIPS. Bez niego jest NullReferenceException zgłaszany w wywołaniach metod w zestawie System.Activities. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Określa, czy podsumowanie kontrolne dla wystąpienia przepływu pracy w debugerze używa algorytmu MD5 lub SHA1. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Określa, czy funkcja skrótu sumy kontrolnej przepływu pracy używa algorytmu SHA1 wprowadzonego jako domyślny w programie .NET Framework 4.7 (), czy też używa domyślnego algorytmu SHA256 wprowadzonego jako domyślny w programie true .NET Framework 4.8 ( false ).
Ze względu na problemy z kolizją z sha1 firma Microsoft zaleca SHA256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Określa, czy ślady stosu uzyskiwane podczas korzystania z przenośnych plików PDB mogą zawierać informacje o plikach źródłowych i wierszach. false w celu dołączyć informacje o pliku źródłowym i wierszu; w przeciwnym true razie . .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Określa, czy Icon.ToBitmap metoda zgłasza wyjątek, gdy Icon obiekt ma ramki PNG. Aby uzyskać więcej informacji, zobacz Mitigation: PNG Frames in Icon Objects (Środki zaradcze: ramki PNG w obiektach ikon). Program .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Określa, System.Drawing.Text.PrivateFontCollection czy obiekty są prawidłowo usuwane po dodaniu do kolekcji przez PrivateFontCollection.AddFontFile(String) metodę . true w celu zachowania starszego zachowania; false w celu usunięcia wszystkich prywatnych obiektów czcionek. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Określa, czy wydajność drukarki PrintPreviewDialog jest zoptymalizowana pod kątem drukarek sieciowych. Aby uzyskać więcej informacji, zobacz PrintPreviewDialog, kontrolka — omówienie. Program .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Określa, czy są wymuszane kontrole zakresu lat dla ery kalendarza japońskiego. true w celu wymuszenia kontroli zakresu lat i false wyłączenia ich (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. Program .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Określa, czy tylko "1" jest rozpoznawany jako pierwszy rok ery kalendarza japońskiego w operacjach analizowania. true do rozpoznawania tylko "1"; false w celu rozpoznania wartości "1" lub Gannen (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. Program .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Określa, czy pierwszy rok ery kalendarza japońskiego jest reprezentowany jako "1", czy Gannen w operacjach formatowania. true w celu sformatowania pierwszego roku ery jako "1"; false w celu sformatowania go jako Gannen (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. Program .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Określa, czy operacje asynchroniczne nie przepływa z kontekstu wątku wywołującego. Aby uzyskać więcej informacji, zobacz Przepływ CurrentCulture i CurrentUICulture między zadaniami. Program .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Określa, czy X509CertificateClaimSet.FindClaims metoda próbuje dopasować typ oświadczenia tylko z ostatnim wpisem DNS. Aby uzyskać więcej informacji, zobacz Mitigation: X509CertificateClaimSet.FindClaims, metoda. .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Określa, czy obiekt AuthorizationContext.Empty ma zwracać modyfikowalny obiekt. Program .NET Framework 4.6
Switch.System.IO.BlockLongPaths Określa, czy ścieżki dłuższe MAX_PATH niż (260 znaków) mają zgłaszać wyjątek PathTooLongException . Aby uzyskać więcej informacji, zobacz Obsługa długich ścieżek. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Określa, czy natywne procedury systemu operacyjnego są używane do dekompresji przez DeflateStream klasę. false do korzystania z natywnych interfejsów API; true w celu użycia DeflateStream implementacji. .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Używa ukośnika odwrotnego (" ") zamiast ukośnika ("/") jako separatora ścieżki \ we właściwości ZipArchiveEntry.FullName . Aby uzyskać więcej informacji, zobacz Mitigation: ZipArchiveEntry.FullName Path Separator (Środki zaradcze: separator ścieżki ZipArchiveEntry.FullName). .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Określa, czy wyjątki systemu operacyjnego zgłaszane w wątkach w tle utworzonych SerialPort za pomocą strumieni zakończą proces. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Określa, czy jest używana starsza normalizacja ścieżki i ścieżki URI są obsługiwane przez Path.GetDirectoryName metody Path.GetPathRoot i . Aby uzyskać więcej informacji, zobacz Mitigation: Path Normalization and Mitigation: Path Colon Checks (Środki zaradcze: normalizacja ścieżki i środki zaradcze: sprawdzanie dwukropka ścieżki). .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Określa, czy test równości porównuje MemberDescriptor.Category właściwość jednego obiektu z MemberDescriptor.Description właściwością drugiego obiektu. Aby uzyskać więcej informacji, zobacz Niepoprawna implementacja funkcji MemberDescriptor.Equals. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Wyłącza weryfikację identyfikatora obiektu rozszerzonego użycia klucza certyfikatu (EKU). Rozszerzenie ulepszonego użycia klucza (EKU, enhanced key usage) to kolekcja identyfikatorów obiektów (ID), które wskazują aplikacje, które używają klucza. Program .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Wyłącza funkcję wykorzystującą luki w zabezpieczeniach protokołu TLS 1.0 przeglądarki w przypadku ograniczania ryzyka użycia protokołu SSL/TLS (JEJ) przez wyłączenie SCH_SEND_AUX_RECORD. Program .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Określa, czy System.Net.ServicePointManager klasy i mogą używać protokołu SSL System.Net.Security.SslStream 3.0. Aby uzyskać więcej informacji, zobacz Mitigation: TLS Protocols (Środki zaradcze: protokoły TLS). Program .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Wyłącza domyślne wersje TLS SystemDefault przywracane do domyślnych wersji Tls12, Tls11 i Tls. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Wyłącza sslstream TLS alerty po stronie serwera. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Określa, czy parametry ByRef SafeArray w zdarzeniach międzyoptymalnych COM są marshalingowe z powrotem do kodu natywnego ( ) lub czy marshaling z powrotem do kodu natywnego false jest wyłączony ( true ). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Określa, czy kontrolka DataContractJsonSerializer serializuje niektóre znaki kontrolne na podstawie standardów ECMAScript V6 i V8. Aby uzyskać więcej informacji, zobacz Mitigation: Serialization of Control Characters with the DataContractJsonSerializer (Środki zaradcze: serializacja znaków sterujących za pomocą kontrolki DataContractJsonSerializer) .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Określa, czy DataContractJsonSerializer kontrolka obsługuje wiele korekt, czy tylko jedną korektę dla strefy czasowej. Jeśli , używa typu do serializacji i deserializować dane daty i czasu; w przeciwnym razie używa typu, który nie obsługuje wielu true TimeZoneInfo reguł TimeZone korekty. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Określa, System.Runtime.Serialization.ObjectManager czy używa większy rozmiar tablicy podczas serializacji i deserializacji obiektu. Ustaw ten przełącznik na true , aby poprawić wydajność serializacji i deserializacji dużych grafów obiektów według typów, takich jak BinaryFormatter . .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Określa, ClaimsIdentity(IIdentity) czy konstruktor ustawia właściwość nowego obiektu ClaimsIdentity.Actor przy użyciu istniejącego odwołania do obiektu. Aby uzyskać więcej informacji, zobacz Mitigation: ClaimsIdentity Constructor. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Określa, czy próba ponownego użycia AesCryptoServiceProvider odszyfrowywania zgłasza wyjątek CryptographicException . Aby uzyskać więcej informacji, zobacz AesCryptoServiceProvider decryptor provides a reusable transform (Odszyfrowywanie AesCryptoServiceProvider udostępnia przekształcenie wielokrotnego użytku). .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Określa, czy wartość właściwości CspParameters.ParentWindowHandle jest właściwością IntPtr, która reprezentuje lokalizację pamięci dojścia okna, czy też jest dojściem okna (HWND). Aby uzyskać więcej informacji, zobacz Mitigation: CspParameters.ParentWindowHandle Expects an HWND (Środki zaradcze: CspParameters.ParentWindowHandle Oczekuje HWND). .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Określa, czy użycie zarządzanych klas kryptografii w trybie FIPS zgłasza wyjątek ( ), czy opiera się na implementacji CryptographicException true bibliotek systemowych ( false ). .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Określa, czy wartością domyślną dla niektórych operacji SignedCMS jest SHA1 lub SHA256.
Z powodu problemów z kolizją sha1 firma Microsoft zaleca sha256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Określa, czy metoda poprawnie obsługuje wszystkie nazwane krzywe obsługiwane przez system operacyjny ( ) lub przywraca ECDsaCertificateExtensions.GetECDsaPublicKey false starsze zachowanie. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Określa, czy wartością domyślną dla niektórych operacji SignedXML jest SHA1, czy SHA256.
Z powodu problemów z kolizją sha1 firma Microsoft zaleca sha256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Określa, czy TransportWithMessageCredential tryb zabezpieczeń zezwala na komunikaty z niepodpisanym nagłówkiem "do". Jest to przełącznik z zgodę. Aby uzyskać więcej informacji, zobacz Runtime Changes in the .NET Framework 4.6.1 (Zmiany w czasie wykonywania w wersji 4.6.1). .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Określa, AddressHeaderCollection(IEnumerable<AddressHeader>) czy konstruktor zgłasza ArgumentException wyjątek , jeśli jeden z elementów to null . .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Określa, czy próba użycia certyfikatów X509 z dostawcą magazynu kluczy CSG zgłasza wyjątek. Aby uzyskać więcej informacji, zobacz WCF transport security supports certificates stored using CNG (Zabezpieczeniatransportu WCF obsługują certyfikaty przechowywane przy użyciu CNG). .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
W przypadku używania transportu HTTP z usługą hostowaną samodzielnie ustawienie tej wartości powoduje, że usługa WCF ignoruje aplikację dodającą nagłówek do nagłówków odpowiedzi true Connection: close dla żądania. Ustawienie tej wartości umożliwia dodanie nagłówka do nagłówków odpowiedzi, co powoduje zamknięcie gniazda żądania po false Connection: close wysłaniu odpowiedzi. Program .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Obsługuje zakleszczenia wynikające z ograniczenia wystąpień usługi ponownego ujednania do pojedynczego wątku wykonywania na raz. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Wraz z usługą określa, czy zabezpieczenia Switch.System.Net.DontEnableSchUseStrongCrypto komunikatów WCF wykorzystują zabezpieczenia TLS 1.1 i TLS 1.2. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Wartość ustawia false domyślną konfigurację, aby umożliwić systemowi operacyjnej wybranie protokołu. Wartość ustawia domyślnie najwyższy true dostępny protokół. (Dostępne również w gałęzi obsługi poprzednich wersji struktury) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Określa, czy domyślny algorytm podpisywania komunikatów dla komunikatów MSMQ w programie WCF to SHA1, czy SHA256.
Z powodu problemów z kolizją sha1 firma Microsoft zaleca sha256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Określa, czy usługa WCF używa skrótu SHA1 lub SHA256 do generowania losowych nazw dla nazwanych potoków.
Z powodu problemów z kolizją sha1 firma Microsoft zaleca sha256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Określa, czy ma być zgłaszany wyjątek NullReferenceException, gdy komunikat o wyjątku ma wartość null. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Określa, czy wyjątki zgłaszane podczas uruchamiania usługi są propagowane do wywołującego ServiceBase.Run metody . .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Określa, Timer czy wystąpienia mogą korzystać z ulepszeń wydajności w środowiskach o dużej skali. Jeśli true , ulepszenia wydajności są włączone; jeśli false (wartość domyślna), są wyłączone. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Określa, czy niektóre znaki zakodowane procentowo, które czasami były dekodowane, są teraz spójnie zakodowane w lewo. Jeśli true , są one zdekodowane; w przeciwnym razie false . .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Określa obsługę znaków dwukierunkowych Unicode w interfejsach URI. true aby usunąć je z URI; false aby je zachować i zakodować procentowo. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Określa, Windows Presentation Foundation stosuje stary algorytm ( ), czy nowy algorytm ( ) podczas przydzielania true false miejsca do * -columns. Aby uzyskać więcej informacji, zobacz Mitigation: Grid Control's Space Allocation to Star-columns(Środki zaradcze: alokacja miejsca kontrolki siatki do kolumn gwiazdy). .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Określa, czy selektor lub kontrolka karty zawsze aktualizuje wartość jej wybranej właściwości value przed podniesieniem zaznaczenia zmienionego zdarzenia. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Określa, czy dla kontrolek i jest dostępne renderowanie wyboru, które nie jest oparte na definiowaniu układu, aby zapobiec okludnym tekstom ( ), czy też tekst jest renderowany tylko w warstwie definiowania TextBox PasswordBox false układu ( true ). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Określa, czy niestandardowe indeksatory IList są używane niepoprawnie true () lub poprawnie false () przez System.Windows.Data.Binding klasę. .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Określa, czy zmiany DPI występują w systemie (wartość ) lub false monitora (wartość true ). .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Określa, czy ulepszenia rozmiarów kontrolek w programie , gdy WPF jest uruchamiany w trybie obsługi monitora, są wyłączone System.Windows.Interop.HwndHost ( ) lub włączone ( true false ). .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Określa, czy deweloper musi specjalnie obsługiwać DomainUpDown.UpButton() akcję, gdy jest obecny tekst sterujący. true do obsługi UpButton() akcji; false aby akcje i były prawidłowo DomainUpDown.UpButton() DomainUpDown.DownButton() zsynchronizowane. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Zrezygnuje z kodu, który umożliwia implementacji niestandardowej bezpieczne filtrowanie komunikatów bez zgłaszania wyjątku IMessageFilter.PreFilterMessage podczas Application.FilterMessage wywoływania metody. Aby uzyskać więcej informacji, zobacz Mitigation: Custom IMessageFilter.PreFilterMessage Implementations (Środki zaradcze: niestandardowe implementacje IMessageFilter.PreFilterMessage). .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Określa, czy ContextMenuStrip.SourceControl właściwość zwraca kontrolę źródła, gdy użytkownik otworzy menu z zagnieżdżonych ToolStripMenuItem kontrolek. true w celu null zwrócenia starszego zachowania ; false w celu zwrócenia kontroli źródła. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Określa, czy obsługa wywołania etykietki narzędzia jest wyłączona true () czy włączona false (). Włączenie obsługi wywołania etykietki narzędzia wymaga również starszych funkcji ułatwień dostępu zdefiniowanych przez elementy , i wszystkich funkcji Switch.UseLegacyAccessibilityFeatures Switch.UseLegacyAccessibilityFeatures.2 Switch.UseLegacyAccessibilityFeatures.3 (ustawionych na false wartość ). .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Określa, czy opcjonalny stos dotykowy/pisak jest włączony WM_POINTER w aplikacjach WPF. Aby uzyskać więcej informacji, zobacz Mitigation: Pointer-based Touch and Stylus Support (Środki zaradcze: obsługa dotykowa oparta na wskaźnikach i stylu) .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Określa, czy domyślny algorytm wyznaczania wartości skrótu używany dla sumy kontrolnej to SHA256 ( false ) lub SHA1 ( true ).
Z powodu problemów z kolizją sha1 firma Microsoft zaleca sha256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Określa, czy jest zgłaszany starszy wyjątek NullReferenceException zamiast wyjątku, który dokładniej wskazuje przyczynę wyjątku (taki jak DirectoryNotFoundException lub FileNotFoundException. Jest on przeznaczony do użycia przez kod, który zależy od obsługi wyjątku NullReferenceException. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Określa, czy skróty sumy kontrolnej plików XOML w kompilacjach projektu przepływu pracy używają algorytmu MD5 ( ), czy też używają algorytmu SHA256 wprowadzonego jako domyślny w wersji true .NET Framework 4.8.
Ze względu na problemy z kolizją z MD5 firma Microsoft zaleca algorytm SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Określa, czy funkcja wyznaczania wartości skrótu sumy kontrolnej przez usługę SqlTrackingService używa algorytmu MD5 ( ) dla buforowanych ciągów, czy też używa algorytmu SHA256 wprowadzonego jako domyślny w programie true .NET Framework 4.8.
Ze względu na problemy z kolizją z MD5 firma Microsoft zaleca algorytm SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Określa, czy funkcja wyznaczania wartości skrótu sumy kontrolnej przez środowisko uruchomieniowe przepływu pracy używa algorytmu MD5 ( ) dla definicji buforowanych przepływów pracy, czy też używa algorytmu SHA256 wprowadzonego jako domyślny w programie true .NET Framework 4.8.
Ze względu na problemy z kolizją z MD5 firma Microsoft zaleca algorytm SHA256.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Określa, czy funkcje ułatwień dostępu dostępne od .NET Framework 4.7.1 są włączone, czy wyłączone. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Określa, czy funkcje ułatwień dostępu dostępne .NET Framework wersji 4.7.2 są włączone ( false ) lub wyłączone ( true ). W przypadku programu należy również włączyć .NET Framework funkcji ułatwień dostępu true Switch.UseLegacyAccessibilityFeatures w true programie 4.7.1. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Określa, czy funkcje ułatwień dostępu wprowadzone w .NET Framework 4.8 są włączone ( false ) lub wyłączone ( true ). Jeśli true , i również musi mieć Switch.UseLegacyAccessibilityFeatures Switch.UseLegacyAccessibilityFeatures.2 . true .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Określa, czy etykietki narzędzi są wyświetlane, gdy użytkownik najedzie kursorem myszy na kontrolkę WPF ( ), lub czy są one wyświetlane zarówno na fokusie klawiatury, jak i za pomocą klawisza skrótu klawiaturowego ( , zachowanie true false domyślne). W przypadku aplikacji działających w wersji .NET Framework 4.8, ale przeznaczonych dla poprzednich wersji programu .NET Framework, włączenie obsługi klawiszy skrótu i fokusu klawiatury wymaga, aby , i wszystkie były ustawione Switch.UseLegacyAccessibilityFeatures Switch.UseLegacyAccessibilityFeatures.2 na Switch.UseLegacyAccessibilityFeatures.3 false . .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Określa, czy puste sekwencje kluczy w kluczach złożonych są ignorowane przez weryfikację schematu XSD. Aby uzyskać więcej informacji, zobacz Mitigation: XML Schema Validation (Środki zaradcze: weryfikacja schematu XML). Program .NET Framework 4.6

Uwaga

Zamiast dodawać element do pliku konfiguracji aplikacji, można również ustawić przełączniki programowo, wywołując metodę (w języku C#) lub (w języku AppContextSwitchOverrides static Shared AppContext.SetSwitch Visual Basic).

Deweloperzy bibliotek mogą również definiować przełączniki niestandardowe, aby umożliwić wywołującym rezygnację ze zmienionych funkcji wprowadzonych w nowszych wersjach bibliotek. Aby uzyskać więcej informacji, zobacz AppContext klasę .

Przełączniki w ASP.NET aplikacji

Można skonfigurować aplikację ASP.NET do używania ustawień zgodności, dodając element do sekcji <Add> <appSettings> web.config pliku.

W poniższym przykładzie użyto elementu , aby dodać dwa ustawienia do sekcji <add> <appSettings> web.config pliku:

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

Przykład

W poniższym przykładzie użyto elementu do zdefiniowania pojedynczego przełącznika zgodności aplikacji, , który zapobiega przepływowi kultury między wątkami w AppContextSwitchOverrides Switch.System.Globalization.NoAsyncCurrentCulture asynchronicznych wywołaniach metod.

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

W poniższym przykładzie AppContextSwitchOverrides użyto elementu do zdefiniowania dwóch przełączników zgodności aplikacji: Switch.System.Globalization.NoAsyncCurrentCulture i Switch.System.IO.BlockLongPaths . Średnik oddziela dwie pary nazwa/wartość.

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

Zobacz też