<AppContextSwitchOverrides> , element
Definiuje co najmniej jeden przełącznik używany przez klasę AppContext w celu zapewnienia mechanizmu rezygnacji z nowych funkcji.
<konfiguracji>
<Środowiska wykonawczego>
<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 |
Wymagane. 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 jego wartością (true lub false ). Wiele par nazw przełączników/wartości jest rozdzielonych średnikami (";"). Aby uzyskać listę wstępnie zdefiniowanych nazw przełączników obsługiwanych przez program .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 programu .NET Framework 4.6, element w pliku konfiguracji umożliwia obiektom wywołującym interfejs API określenie, <AppContextSwitchOverrides>
czy aplikacja może korzystać z nowych funkcji, czy zachować zgodność z poprzednimi wersjami biblioteki. Jeśli na przykład zachowanie interfejsu API uległo zmianie między dwiema wersjami biblioteki, <AppContextSwitchOverrides>
element umożliwia obiektom wywołującym tego interfejsu API rezygnację z nowego zachowania w wersjach biblioteki, które obsługują nowe funkcje. W przypadku aplikacji wywołujących interfejsy API w programie .NET Framework element może również zezwalać na wywołania, <AppContextSwitchOverrides>
których aplikacje są przeznaczone dla wcześniejszej wersji programu .NET Framework, aby wyrazić zgodę na nowe funkcje, jeśli aplikacja jest uruchomiona w wersji programu .NET Framework, która zawiera te funkcje.
Atrybut value
<AppContextSwitchOverrides>
elementu składa się z jednego ciągu składającego się z co najmniej jednej pary nazw/wartości rozdzielanych średnikami. Każda nazwa identyfikuje przełącznik zgodności, a jego odpowiadająca mu wartość jest wartością logiczną (true
lub false
), która wskazuje, czy przełącznik jest ustawiony. Domyślnie przełącznik to false
, a biblioteki udostępniają nowe funkcje. Zapewniają one tylko poprzednie funkcje, jeśli przełącznik jest ustawiony (czyli jego wartość to true
). Dzięki temu biblioteki mogą udostępniać nowe zachowanie dla istniejącego interfejsu API, umożliwiając obiektom wywołującym, którzy zależą od poprzedniego zachowania, aby zrezygnować z nowych funkcji.
Program .NET Framework obsługuje następujące przełączniki:
Nazwa przełącznika | opis | Wprowadzono |
---|---|---|
Switch.MS.Internal. DoNotApplyLayoutRoundingToMarginsAndBorderThickness |
Określa, czy program Windows Presentation Foundation używa starszego algorytmu do układu kontrolki. Aby uzyskać więcej informacji, zobacz Środki zaradcze: układ WPF. | .NET framework 4.6 |
Switch.MS.Internal. UseSha1AsDefaultHashAlgorithmForDigitalSignatures |
Określa, czy domyślny algorytm używany do podpisywania części pakietu przez PackageDigitalSignatureManager to SHA1 lub SHA256. Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.1 |
Switch.System.Activities. UseMD5CryptoServiceProviderForWFDebugger |
Gdy jest ustawiona wartość false , umożliwia debugowanie projektów przepływu pracy opartych na języku XAML za pomocą programu Visual Studio po włączeniu protokołu FIPS. Bez niego element NullReferenceException jest zgłaszany w wywołaniach metod w zestawie System.Activities. |
.NET Framework 4.7 |
Switch.System.Activities. UseMD5ForWFDebugger |
Określa, czy suma kontrolna wystąpienia przepływu pracy w debugerze używa algorytmu MD5 lub SHA1. | .NET Framework 4.7 |
Switch.System.Activities. UseSHA1HashForDebuggerSymbols |
Określa, czy skrót sumy kontrolnej przepływu pracy używa algorytmu SHA1 wprowadzonego jako domyślny w programie .NET Framework 4.7 (true ), czy też używa domyślnego algorytmu SHA256 wprowadzonego jako domyślny w programie .NET Framework 4.8 (false ).Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.8 |
Switch.System.Diagnostics. IgnorePortablePDBsInStackTraces |
Określa, czy ślady stosu są uzyskiwane podczas korzystania z przenośnych plików PDB, mogą zawierać informacje o pliku źródłowym i wierszu. false w celu uwzględnienia pliku źródłowego i informacji o wierszu; w przeciwnym razie, true . |
.NET Framework 4.7.2 |
Switch.System.Drawing. DontSupportPngFramesInIcons |
Określa, Icon.ToBitmap czy metoda zgłasza wyjątek, gdy Icon obiekt ma ramki PNG. Aby uzyskać więcej informacji, zobacz Środki zaradcze: ramki PNG w obiektach ikon. | .NET framework 4.6 |
Switch.System.Drawing.Text. DoNotRemoveGdiFontsResourcesFromFontCollection |
Określa, czy System.Drawing.Text.PrivateFontCollection obiekty są prawidłowo usuwane po dodaniu do kolekcji przez metodę PrivateFontCollection.AddFontFile(String) . true zachowanie starszej wersji; false do usuwania wszystkich prywatnych obiektów czcionek. |
.NET Framework 4.7.2 |
Switch.System.Drawing.Printing. OptimizePrintPreview |
Określa, czy wydajność PrintPreviewDialog drukarki sieciowej jest zoptymalizowana. Aby uzyskać więcej informacji, zobacz PrintPreviewDialog control overview (Omówienie kontrolki PrintPreviewDialog). | .NET framework 4.6 |
Switch.System.Globalization.EnforceJapaneseEraYearRanges |
Określa, czy są wymuszane kontrole zakresu lat dla japońskich wymazów kalendarza. true aby wymusić kontrole zakresu lat i false wyłączyć je (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. |
.NET framework 4.6 |
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing |
Określa, czy tylko "1" jest rozpoznawany jako pierwszy rok japońskiej ery kalendarza w operacjach analizowania. true rozpoznawanie tylko "1"; false rozpoznawanie wartości "1" lub Gannen (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. |
.NET framework 4.6 |
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber |
Określa, czy pierwszy rok ery kalendarza japońskiego jest reprezentowany jako "1" lub Gannen w operacjach formatowania. true aby sformatować pierwszy rok ery jako "1"; false aby sformatować go jako Gannen (zachowanie domyślne). Aby uzyskać więcej informacji, zobacz Praca z kalendarzami. |
.NET framework 4.6 |
Switch.System.Globalization.NoAsyncCurrentCulture |
Określa, czy operacje asynchroniczne nie przepływają z kontekstu wywołującego wątku. Aby uzyskać więcej informacji, zobacz CurrentCulture i CurrentUICulture flow across tasks (Przepływ CurrentCulture i CurrentUICulture między zadaniami). | .NET framework 4.6 |
Switch.System.IdentityModel. DisableMultipleDNSEntriesInSANCertificate |
Określa, X509CertificateClaimSet.FindClaims czy metoda próbuje dopasować typ oświadczenia tylko do ostatniego wpisu DNS. Aby uzyskać więcej informacji, zobacz Środki zaradcze: X509CertificateClaimSet.FindClaims, metoda. | .NET Framework 4.6.1 |
Switch.System.IdentityModel. EnableCachedEmptyDefaultAuthorizationContext |
Określa, czy zezwalać na zwracanie obiektu modyfikowalnego przez element AuthorizationContext.Empty. | .NET framework 4.6 |
Switch.System.IO.BlockLongPaths |
Określa, czy ścieżki dłuższe niż MAX_PATH (260 znaków) zgłaszają PathTooLongExceptionwartość . Aby uzyskać więcej informacji, zobacz Obsługa długiej ścieżki. |
.NET Framework 4.6.2 |
Switch.System.IO.Compression. DoNotUseNativeZipLibraryForDecompression |
Określa, czy natywne procedury systemu operacyjnego są używane do dekompresji przez klasę DeflateStream . false do korzystania z natywnych interfejsów API; true aby użyć implementacji DeflateStream . |
.NET Framework 4.7.2 |
Switch.System.IO.Compression.ZipFile. UseBackslash |
Używa ukośnika odwrotnego ("\") zamiast ukośnika do przodu ("/") jako separatora ścieżki ZipArchiveEntry.FullName we właściwości . Aby uzyskać więcej informacji, zobacz Ograniczenia ryzyka: ZipArchiveEntry.FullName Path Separator. | .NET Framework 4.6.1 |
Switch.System.IO.Ports. DoNotCatchSerialStreamThreadExceptions |
Określa, czy wyjątki systemu operacyjnego, które są zgłaszane w wątkach w tle utworzonych strumieniami SerialPort , zakończą proces. | .NET Framework 4.7.1 |
Switch.System.IO. UseLegacyPathHandling |
Określa, czy używana jest starsza normalizacja ścieżki, a ścieżki identyfikatorów URI są obsługiwane przez Path.GetDirectoryName metody i Path.GetPathRoot . Aby uzyskać więcej informacji, zobacz Ś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 właściwością MemberDescriptor.Description drugiego obiektu. Aby uzyskać więcej informacji, zobacz Niepoprawna implementacja elementu MemberDescriptor.Equals. | .NET Framework 4.6.2 |
Switch.System.Net. DontCheckCertificateEKUs |
Wyłącza walidację identyfikatora obiektu rozszerzonego użycia klucza certyfikatu (EKU). Rozszerzenie rozszerzonego użycia klucza (EKU) to kolekcja identyfikatorów obiektów (OID), które wskazują aplikacje używające klucza. | .NET framework 4.6 |
Switch.System.Net. DontEnableSchSendAuxRecord |
Wyłącza ograniczenie ryzyka protokołu TLS1.0 Browser Exploit Against SSL/TLS (BEAST), wyłączając użycie SCH_SEND_AUX_RECORD. | .NET framework 4.6 |
Switch.System.Net. DontEnableSchUseStrongCrypto |
Określa, czy System.Net.ServicePointManager klasy i System.Net.Security.SslStream mogą używać protokołu SSL 3.0. Aby uzyskać więcej informacji, zobacz Środki zaradcze: protokoły TLS. | .NET framework 4.6 |
Switch.System.Net. DontEnableSystemDefaultTlsVersions |
Wyłącza przywracanie wersji protokołu TLS elementu SystemDefault do wartości domyślnej tls12, Tls11 i Tls. | .NET Framework 4.7 |
Switch.System.Net. DontEnableTlsAlerts |
Wyłącza alerty po stronie serwera SSLStream TLS. | .NET Framework 4.7 |
Switch.System.Runtime.InteropServices. DoNotMarshalOutByrefSafeArrayOnInvoke |
Określa, czy parametry ByRef SafeArray w zdarzeniach międzyoperacyjności modelu COM są marshaling z powrotem do kodu natywnego (false ) lub czy kierowanie z powrotem do kodu natywnego jest wyłączone (true ). |
.NET Framework 4.8 |
Switch.System.Runtime.Serialization. DoNotUseECMAScriptV6EscapeControlCharacter |
Określa, czy program DataContractJsonSerializer serializuje niektóre znaki sterujące na podstawie standardów ECMAScript V6 i V8. Aby uzyskać więcej informacji, zobacz Środki zaradcze: serializacja znaków kontrolek za pomocą elementu DataContractJsonSerializer | .NET Framework 4.7 |
Switch.System.Runtime.Serialization. DoNotUseTimeZoneInfo |
Określa, czy DataContractJsonSerializer obiekt obsługuje wiele korekt, czy tylko jedną korektę dla strefy czasowej. Jeśli true parametr używa TimeZoneInfo typu do serializacji i deserializacji danych daty i godziny. W przeciwnym razie używa TimeZone typu , który nie obsługuje wielu reguł korekty. |
.NET Framework 4.6.2 |
Switch.System.Runtime.Serialization.UseNewMaxArraySize |
Określa, czy System.Runtime.Serialization.ObjectManager używa większego rozmiaru tablicy podczas serializacji obiektów i deserializacji. Ustaw ten przełącznik, aby true zwiększyć 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, czy ClaimsIdentity(IIdentity) konstruktor ustawia właściwość nowego obiektu ClaimsIdentity.Actor przy użyciu istniejącego odwołania do obiektu. Aby uzyskać więcej informacji, zobacz Środki zaradcze: ClaimsIdentity Konstruktor. | .NET Framework 4.6.2 |
Switch.System.Security.Cryptography. AesCryptoServiceProvider.DontCorrectlyResetDecryptor |
Określa, czy próba ponownego AesCryptoServiceProvider użycia odszyfrowywania zgłasza błąd CryptographicException. Aby uzyskać więcej informacji, zobacz AesCryptoServiceProvider decryptor zapewnia 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 to IntPtr reprezentująca lokalizację pamięci uchwytu okna, czy też jest to uchwyt okna (HWND). Aby uzyskać więcej informacji, zobacz Środki zaradcze: CspParameters.ParentWindowHandle oczekuje HWND. | .NET Framework 4.7 |
Switch.System.Security.Cryptography. UseLegacyFipsThrow |
Określa, czy użycie zarządzanych klas kryptograficznych w trybie FIPS zgłasza CryptographicException wartość (true ) lub opiera się na implementacji bibliotek systemowych (false ). |
.NET Framework 4.8 |
Switch.System.Security.Cryptography.Pkcs. UseInsecureHashAlgorithms |
Określa, czy wartością domyślną niektórych operacji SignedCMS jest SHA1 czy SHA256. Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.1 |
Switch.System.Security.Cryptography.X509Certificates. ECDsaCertificateExtensions.UseLegacyPublicKeyReader |
Określa, czy ECDsaCertificateExtensions.GetECDsaPublicKey metoda prawidłowo obsługuje wszystkie nazwane krzywe obsługiwane przez system operacyjny (false ) lub przywraca starsze zachowanie. |
.NET Framework 4.8 |
Switch.System.Security.Cryptography.Xml. UseInsecureHashAlgorithms |
Określa, czy wartością domyślną niektórych operacji SignedXML jest SHA1 czy SHA256. Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.1 |
Switch.System.ServiceModel. AllowUnsignedToHeader |
Określa, TransportWithMessageCredential czy tryb zabezpieczeń zezwala na komunikaty z niepodpisanym nagłówkiem "do". Jest to przełącznik zgody. Aby uzyskać więcej informacji, zobacz Zmiany środowiska uruchomieniowego w programie .NET Framework 4.6.1. |
.NET Framework 4.6.1 |
Switch.System.ServiceModel. DisableAddressHeaderCollectionValidation > |
Określa, AddressHeaderCollection(IEnumerable<AddressHeader>) czy konstruktor zgłasza wyjątek ArgumentException , 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 Zabezpieczenia transportu WCF obsługują certyfikaty przechowywane przy użyciu CNG. | .NET Framework 4.6.1 |
Switch.System.ServiceModel. DisableExplicitConnectionCloseHeader |
W przypadku korzystania z transportu HTTP z samoobsługą ustawienie tej wartości true powoduje, że program WCF ignoruje aplikację dodającą Connection: close nagłówek do nagłówków odpowiedzi dla żądania. Ustawienie tej wartości w celu false włączenia dodawania nagłówka Connection: close do nagłówków odpowiedzi, co powoduje zamknięcie gniazda żądania po wysłaniu odpowiedzi. |
.NET framework 4.6 |
Switch.System.ServiceModel. DisableOperationContextAsyncFlow |
Obsługuje zakleszczenia, które wynikają z ograniczenia wystąpień ponownego uczestnika usługi do pojedynczego wątku wykonywania w danym momencie. | .NET Framework 4.6.2 |
Switch.System.ServiceModel. DisableUsingServicePointManagerSecurityProtocols |
Wraz z Switch.System.Net.DontEnableSchUseStrongCrypto programem określa, czy zabezpieczenia komunikatów programu WCF używają protokołów TLS 1.1 i TLS 1.2. |
.NET Framework 4.7 |
Switch.System.ServiceModel. DontEnableSystemDefaultTlsVersions |
Wartość false ustawia domyślną konfigurację, aby umożliwić systemowi operacyjnemu wybranie protokołu. Wartość true ustawia wartość domyślną na najwyższy dostępny protokół. (Dostępne również w gałęzi obsługi poprzednich wersji platformy) |
.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 lub SHA256. Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.1 |
Switch.System.ServiceModel. UseSha1InPipeConnectionGetHashAlgorithm |
Określa, czy program WCF używa skrótu SHA1, czy SHA256 do generowania losowych nazw nazwanych potoków. Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.1 |
Switch.System.ServiceModel.Internals IncludeNullExceptionMessageInETWTrace |
Określa, czy zgłaszać 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 obiektu wywołującego ServiceBase.Run metody . | .NET Framework 4.7.1 |
Switch.System.Threading.UseNetCoreTimer |
Określa, czy Timer wystąpienia korzystają z ulepszeń wydajności w środowiskach o dużej skali. Jeśli true funkcja , zostaną włączone ulepszenia wydajności; jeśli false (wartość domyślna), zostaną wyłączone. |
.NET Framework 4.8 |
Switch.System.Uri. DontEnableStrictRFC3986ReservedCharacterSets |
Określa, czy niektóre znaki zakodowane w procentach, które były czasami dekodowane, są teraz spójnie zakodowane w lewo. Jeśli true parametr jest zdekodowany; w przeciwnym razie false . |
.NET Framework 4.7.2 |
Switch.System.Uri. DontKeepUnicodeBidiFormattingCharacters |
Określa obsługę znaków dwukierunkowych Unicode w identyfikatorach URI. true aby usunąć je z identyfikatorów URI; false aby je zachować i zakodować procent. |
.NET Framework 4.7.2 |
Switch.System.Windows.Controls.Grid. StarDefinitionsCanExceedAvailableSpace |
Określa, czy program Windows Presentation Foundation stosuje stary algorytm (true ) lub nowy algorytm (false ) przydzielając miejsce do *-kolumn. Aby uzyskać więcej informacji, zobacz Środki zaradcze: alokacja miejsca kontrolki siatki do kolumn gwiazd. |
.NET Framework 4.7 |
Switch.System.Windows.Controls.TabControl. SelectionPropertiesCanLagBehindSelectionChangedEvent |
Określa, czy selektor lub kontrolka karty zawsze aktualizuje wartość wybranej właściwości wartości przed podniesieniem zdarzenia zmienionego zaznaczenia. | .NET Framework 4.7.1 |
Switch.System.Windows.Controls.Text. UseAdornerForTextboxSelectionRendering |
Określa, czy renderowanie zaznaczenia nienależące do modułu Adorner jest dostępne dla TextBox kontrolek i PasswordBox , aby zapobiec okludowaniu tekstu (false ), czy też tekst jest renderowany tylko w warstwie Adorner (true ). |
.NET Framework 4.7.2 |
Switch.System.Windows.Data.Binding. IListIndexerHidesCustomIndexer |
Określa, czy niestandardowe indeksatory IList są niepoprawnie (true ) lub poprawnie (false ) przez klasę System.Windows.Data.Binding . |
.NET Framework 4.8 |
Switch.System.Windows.DoNotScaleForDpiChanges |
Określa, czy zmiany DPI występują w poszczególnych systemach (wartość false ) lub na monitor (wartość true ). |
.NET Framework 4.6.2 |
Switch.System.Windows. DoNotUsePresentationDpiCapabilityTier2OrGreater |
Określa, czy ulepszenia określania rozmiaru kontrolek w System.Windows.Interop.HwndHost programie WPF są uruchamiane w trybie obsługującym monitor, są wyłączone (true ) lub włączone (false ). |
.NET Framework 4.8 |
Switch.System.Windows.Forms. DisconnectUiaProvidersOnWmDestroy |
Określa, czy dostawcy są rozłączni, gdy odpowiednie okno sterowania zostanie zniszczone () lubtrue nie (false ). Ten przełącznik zapewnia zgodę na poprawkę wydajności w celu rozwiązania problemu wycieku IRawElementProviderSimple obiektów. |
.NET Framework 4.8 |
Switch.System.Windows.Forms. DomainUpDown.UseLegacyScrolling |
Określa, czy deweloper musi specjalnie obsługiwać akcję w przypadku obecności tekstu sterującego DomainUpDown.UpButton() . true do obsługi UpButton() akcji; false aby akcje DomainUpDown.UpButton() i DomainUpDown.DownButton() były prawidłowo zsynchronizowane. |
.NET Framework 4.7.2 |
Switch.System.Windows.Forms. DontSupportReentrantFilterMessage |
Rezygnacja z kodu, który umożliwia implementacji niestandardowej IMessageFilter.PreFilterMessage bezpieczne filtrowanie komunikatów bez zgłaszania wyjątku, gdy metoda jest wywoływana Application.FilterMessage . Aby uzyskać więcej informacji, zobacz Ś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 kontrolkę źródła, gdy użytkownik otwiera menu z zagnieżdżonej ToolStripMenuItem kontrolki. true aby powrócić null , starsze zachowanie; false aby zwrócić kontrolę źródła. |
.NET Framework 4.7.2 |
Switch.System.Windows.Forms.UseLegacyToolTipDisplay |
Określa, czy obsługa wywołań etykietek narzędzi jest wyłączona (true ) czy włączona (false ). Włączenie obsługi wywołania etykietek narzędzi wymaga również starszych funkcji ułatwień dostępu zdefiniowanych przez Switch.UseLegacyAccessibilityFeatures Switch.UseLegacyAccessibilityFeatures.2 , i Switch.UseLegacyAccessibilityFeatures.3 wszystkie muszą zostać wyłączone (ustawiona na false wartość ). |
.NET Framework 4.8 |
Switch.System.Windows.Input.Stylus. EnablePointerSupport |
Określa, czy opcjonalny WM_POINTER stos touch/stylus jest włączony w aplikacjach WPF. Aby uzyskać więcej informacji, zobacz Środki zaradcze: obsługa dotyku opartego na wskaźniku 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 sum kontrolnych to SHA256 (false ) lub SHA1 (true ).Ze względu na problemy z kolizją z algorytmem SHA1 firma Microsoft zaleca sha256. |
.NET Framework 4.7.2 |
Switch.System.Windows.Media.ImageSourceConverter. OverrideExceptionWithNullReferenceException |
Określa, czy jest zgłaszana starsza wersja nullReferenceException zamiast wyjątku, który dokładniej wskazuje przyczynę wyjątku (na przykład DirectoryNotFoundException lub FileNotFoundException. Jest 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ót sumy kontrolnej plików XOML w kompilacjach projektu przepływu pracy używa algorytmu MD5 (true ), czy też używa algorytmu SHA256 wprowadzonego jako wartość domyślna w programie .NET Framework 4.8.Ze względu na problemy z kolizją z md5 firma Microsoft zaleca sha256. |
.NET Framework 4.8 |
Switch.System.Workflow.Runtime. UseLegacyHashForSqlTrackingCacheKey |
Określa, czy skrót sumy kontrolnej przez usługę SqlTrackingService używa algorytmu MD5 (true ) dla ciągów buforowanych, czy też używa algorytmu SHA256 wprowadzonego jako wartość domyślna w programie .NET Framework 4.8.Ze względu na problemy z kolizją z md5 firma Microsoft zaleca sha256. |
.NET Framework 4.8 |
Switch.System.Workflow.Runtime. UseLegacyHashForWorkflowDefinitionDispenserCacheKey |
Określa, czy skrót sumy kontrolnej przez środowisko uruchomieniowe przepływu pracy używa algorytmu MD5 (true ) dla definicji buforowanego przepływu pracy, czy też używa algorytmu SHA256 wprowadzonego jako domyślny w programie .NET Framework 4.8.Ze względu na problemy z kolizją z md5 firma Microsoft zaleca sha256. |
.NET Framework 4.8 |
Switch.UseLegacyAccessibilityFeatures |
Określa, czy funkcje ułatwień dostępu dostępne począwszy od programu .NET Framework 4.7.1 są włączone lub wyłączone. | .NET Framework 4.7.1 |
Switch.UseLegacyAccessibilityFeatures.2 |
Określa, czy funkcje ułatwień dostępu dostępne w programie .NET Framework 4.7.2 są włączone (false ) lub wyłączone (true ). Jeśli true program Switch.UseLegacyAccessibilityFeatures musi również true włączyć funkcje ułatwień dostępu programu .NET Framework 4.7.1. |
.NET Framework 4.7.2 |
Switch.UseLegacyAccessibilityFeatures.3 |
Określa, czy funkcje ułatwień dostępu wprowadzone w programie .NET Framework 4.8 są włączone (false ) lub wyłączone (true ). Jeśli true parametr i Switch.UseLegacyAccessibilityFeatures.2 Switch.UseLegacyAccessibilityFeatures musi również mieć wartość true . |
.NET Framework 4.8 |
Switch.UseLegacyToolTipDisplay |
Określa, czy etykietki narzędzi są wyświetlane, gdy użytkownik najecha kursorem myszy na kontrolkę WPF (true ) lub czy są wyświetlane zarówno na fokusie klawiatury, jak i za pomocą skrótu klawiaturowego (false zachowanie domyślne). W przypadku aplikacji działających w programie .NET Framework 4.8, ale przeznaczonych dla poprzednich wersji programu .NET Framework, włączenie obsługi fokusu klawiatury i skrótu wymaga ustawienia Switch.UseLegacyAccessibilityFeatures , Switch.UseLegacyAccessibilityFeatures.2 i Switch.UseLegacyAccessibilityFeatures.3 wszystkie wartości false . |
.NET Framework 4.8 |
Switch.System.Xml. IgnoreEmptyKeySequences |
Określa, czy puste sekwencje kluczy w kluczach złożonych są ignorowane przez walidację schematu XSD. Aby uzyskać więcej informacji, zobacz Środki zaradcze: weryfikacja schematu XML. | .NET framework 4.6 |
Uwaga
Zamiast dodawać AppContextSwitchOverrides
element do pliku konfiguracji aplikacji, można również ustawić przełączniki programowo, wywołując metodę AppContext.SetSwitch .
Deweloperzy bibliotek mogą również definiować przełączniki niestandardowe, aby umożliwić obiektom wywołującym rezygnację ze zmienionych funkcji wprowadzonych w nowszych wersjach bibliotek. Aby uzyskać więcej informacji, zobacz klasę AppContext .
Przełączniki w aplikacjach ASP.NET
Aplikację ASP.NET można skonfigurować tak, aby korzystała z ustawień zgodności, dodając element <Dodaj> do <sekcji appSettings> pliku web.config.
W poniższym przykładzie użyto <add>
elementu , aby dodać dwa ustawienia do <appSettings>
sekcji pliku web.config:
<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 AppContextSwitchOverrides
użyto elementu do zdefiniowania przełącznika zgodności z jedną aplikacją, Switch.System.Globalization.NoAsyncCurrentCulture
który uniemożliwia przepływ kultury między wątkami w wywołaniach metod asynchronicznych.
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Globalization.NoAsyncCurrentCulture=true" />
</runtime>
</configuration>
W poniższym przykładzie użyto AppContextSwitchOverrides
elementu do zdefiniowania dwóch przełączników zgodności aplikacji i Switch.System.IO.BlockLongPaths
Switch.System.Globalization.NoAsyncCurrentCulture
. Średnik oddziela dwie pary nazw/wartości.
<configuration>
<runtime>
<AppContextSwitchOverrides
value="Switch.System.Globalization.NoAsyncCurrentCulture=true;Switch.System.IO.BlockLongPaths=true" />
</runtime>
</configuration>