Elemen <AppContextSwitchOverrides>

Menentukan satu atau beberapa tombol yang digunakan kelas AppContext untuk menyediakan mekanisme penolakan untuk fungsionalitas baru.

<konfigurasi>
  <runtime>
    <AppContextSwitchOverrides>

Sintaks

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

Atribut dan Elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Atribut

Atribut Deskripsi
value Harus diisi. Mendefinisikan satu atau beberapa nama tombol dan nilai Boolean terkait.

Atribut nilai

Nilai Deskripsi
"name=value" Nama tombol yang telah ditentukan sebelumnya beserta nilainya (true atau false). Beberapa pasangan nama/nilai tombol dipisahkan oleh titik koma (";"). Untuk daftar nama tombol yang telah ditentukan sebelumnya yang didukung oleh .NET Framework, lihat bagian Keterangan.

Elemen Anak

Tidak ada.

Elemen Induk

Elemen Deskripsi
configuration Elemen akar di setiap file konfigurasi yang digunakan oleh runtime dan aplikasi .NET Framework.
runtime Berisi informasi tentang opsi inisialisasi runtime.

Keterangan

Dimulai dengan .NET Framework 4.6, elemen <AppContextSwitchOverrides> dalam file konfigurasi memungkinkan pemanggil API menentukan apakah aplikasi mereka dapat memanfaatkan fungsionalitas baru atau mempertahankan kompatibilitas dengan versi pustaka sebelumnya. Misalnya, jika perilaku API telah berubah di antara dua versi pustaka, elemen <AppContextSwitchOverrides> memungkinkan pemanggil API tersebut menolak perilaku baru pada versi pustaka yang mendukung fungsionalitas baru. Untuk aplikasi yang memanggil API dalam .NET Framework, <AppContextSwitchOverrides> elemen juga dapat memungkinkan pemanggil yang aplikasinya menargetkan versi .NET Framework sebelumnya untuk memilih fungsionalitas baru jika aplikasi mereka berjalan pada versi .NET Framework yang menyertakan fungsionalitas tersebut.

Atribut value dari elemen <AppContextSwitchOverrides> terdiri dari string tunggal yang terdiri dari satu atau beberapa pasangan nama/nilai yang dibatasi dengan titik koma. Setiap nama mengidentifikasi tombol kompatibilitas, dan nilai yang sesuai adalah Boolean (true atau false) yang menunjukkan apakah tombol tersebut diatur. Secara default, tombol tersebut adalah false, dan pustaka menyediakan fungsionalitas baru. Mereka hanya menyediakan fungsionalitas sebelumnya jika tombol diatur (artinya, nilainya adalah true). Hal ini memungkinkan pustaka menyediakan perilaku baru untuk API yang ada sembari memungkinkan pemanggil yang bergantung pada perilaku sebelumnya untuk menolak fungsi baru.

.NET Framework mendukung tombol berikut:

Ganti nama Deskripsi Pengenalan
Switch.MS.Internal.
DoNotApplyLayoutRoundingToMarginsAndBorderThickness
Mengontrol apakah Windows Presentation Foundation menggunakan algoritma lama untuk tata letak kontrol. Untuk informasi selengkapnya, lihat Mitigasi: Tata Letak WPF. .NET Framework 4.6
Switch.MS.Internal.
UseSha1AsDefaultHashAlgorithmForDigitalSignatures
Mengontrol apakah algoritma default yang digunakan untuk menandatangani bagian dari paket oleh PackageDigitalSignatureManager adalah SHA1 atau SHA256.
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.1
Switch.System.Activities.
UseMD5CryptoServiceProviderForWFDebugger
Ketika diatur ke false, memungkinkan penelusuran kesalahan proyek alur kerja berbasis XAML dengan Visual Studio saat FIPS diaktifkan. Tanpa itu, NullReferenceException ditampilkan dalam panggilan ke metode di assembly System.Activities. .NET Framework 4.7
Switch.System.Activities.
UseMD5ForWFDebugger
Mengontrol apakah checksum untuk instans alur kerja dalam debugger menggunakan MD5 atau SHA1. .NET Framework 4.7
Switch.System.Activities.
UseSHA1HashForDebuggerSymbols
Mengontrol apakah hashing checksum alur kerja menggunakan algoritma SHA1 yang diperkenalkan sebagai algoritma default di .NET Framework 4.7 (true), atau apakah menggunakan algoritma SHA256 default yang diperkenalkan sebagai algoritma default di .NET Framework 4.8 (false).
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.8
Switch.System.Diagnostics.
IgnorePortablePDBsInStackTraces
Mengontrol apakah jejak tumpukan diperoleh saat menggunakan PDB portabel dapat menyertakan file sumber dan informasi baris. false untuk menyertakan file sumber dan informasi baris; jika tidak, true. .NET Framework 4.7.2
Switch.System.Drawing.
DontSupportPngFramesInIcons
Mengontrol apakah metode Icon.ToBitmap menampilkan pengecualian ketika objek Icon memiliki bingkai PNG. Untuk informasi selengkapnya, lihat Mitigasi: Bingkai PNG dalam Objek Ikon. .NET Framework 4.6
Switch.System.Drawing.Text.
DoNotRemoveGdiFontsResourcesFromFontCollection
Menentukan apakah objek System.Drawing.Text.PrivateFontCollection dibuang dengan benar saat ditambahkan ke kumpulan dengan metode PrivateFontCollection.AddFontFile(String). true untuk mempertahankan perilaku lama; false untuk membuang semua objek font pribadi. .NET Framework 4.7.2
Switch.System.Drawing.Printing.
OptimizePrintPreview
Mengontrol apakah performa PrintPreviewDialog dioptimalkan untuk printer jaringan. Untuk informasi selengkapnya lihat Gambaran umum kontrol PrintPreviewDialog. .NET Framework 4.6
Switch.System.Globalization.EnforceJapaneseEraYearRanges Mengontrol apakah pemeriksaan rentang tahun untuk era kalender Jepang diberlakukan. true untuk menerapkan pemeriksaan rentang tahun, dan false untuk menonaktifkannya (perilaku default). Untuk informasi selengkapnya, lihat Menggunakan Objek. .NET Framework 4.6
Switch.System.Globalization.EnforceLegacyJapaneseDateParsing Mengontrol apakah hanya "1" yang diakui sebagai tahun pertama era kalender Jepang dalam operasi penguraian. true hanya untuk mengenali "1"; false untuk mengenali "1" atau Gannen (perilaku default). Untuk informasi selengkapnya, lihat Menggunakan Objek. .NET Framework 4.6
Switch.System.Globalization.FormatJapaneseFirstYearAsANumber Mengontrol apakah tahun pertama era kalender Jepang direpresentasikan sebagai "1" atau Gannen dalam operasi pemformatan. true untuk memformat tahun pertama era sebagai "1"; false untuk memformatnya sebagai Gannen (perilaku default). Untuk informasi selengkapnya, lihat Menggunakan Objek. .NET Framework 4.6
Switch.System.Globalization.NoAsyncCurrentCulture Mengontrol apakah operasi asinkron tidak mengalir dari konteks thread pemanggilan. Untuk informasi selengkapnya, lihat CurrentCulture dan CurrentUICulture mengalir di seluruh tugas. .NET Framework 4.6
Switch.System.IdentityModel.
DisableMultipleDNSEntriesInSANCertificate
Mengontrol apakah X509CertificateClaimSet.FindClaims metode mencoba mencocokkan jenis klaim hanya dengan entri DNS terakhir. Untuk informasi selengkapnya, lihat Mitigasi: X509CertificateClaimSet.FindClaims Method. .NET Framework 4.6.1
Switch.System.IdentityModel.
EnableCachedEmptyDefaultAuthorizationContext
Mengontrol apakah akan mengizinkan AuthorizationContext.Empty untuk menampilkan objek dinamis. .NET Framework 4.6
Switch.System.IO.BlockLongPaths Mengontrol apakah jalur yang lebih panjang daripada MAX_PATH (260 karakter) menampilkan PathTooLongException. Untuk informasi selengkapnya, lihat Dukungan Jalur Panjang. .NET Framework 4.6.2
Switch.System.IO.Compression.
DoNotUseNativeZipLibraryForDecompression
Mengontrol apakah rutinitas OS native digunakan untuk dekompresi oleh kelas DeflateStream. false untuk menggunakan API native; true untuk menggunakan implementasi DeflateStream. .NET Framework 4.7.2
Switch.System.IO.Compression.ZipFile.
UseBackslash
Menggunakan garis miring terbalik ("\"), bukan garis miring ("/") sebagai pemisah jalur dalam properti ZipArchiveEntry.FullName. Untuk informasi selengkapnya, lihat Mitigasi: Pemisah Jalur ZipArchiveEntry.FullName. .NET Framework 4.6.1
Switch.System.IO.Ports.
DoNotCatchSerialStreamThreadExceptions
Mengontrol apakah pengecualian sistem operasi yang ditampilkan pada thread latar belakang yang dibuat dengan aliran SerialPort yang menghentikan proses. .NET Framework 4.7.1
Switch.System.IO.
UseLegacyPathHandling
Mengontrol apakah normalisasi jalur lama digunakan dan jalur URI didukung oleh metode Path.GetDirectoryName dan Path.GetPathRoot. Untuk informasi selengkapnya, lihat Mitigasi: Normalisasi Jalur dan Mitigasi: Pemeriksaan Titik Dua Jalur. .NET Framework 4.6.2
Switch.System.
MemberDescriptorEqualsReturnsFalseIfEquivalent
Mengontrol apakah pengujian untuk kesetaraan membandingkan properti MemberDescriptor.Category satu objek dengan properti MemberDescriptor.Description objek kedua. Untuk informasi selengkapnya, lihat Implementasi MemberDescriptor.Equals yang salah. .NET Framework 4.6.2
Switch.System.Net.
DontCheckCertificateEKUs
Menonaktifkan validasi pengidentifikasi objek (OID) penggunaan kunci yang ditingkatkan sertifikat (EKU). Ekstensi penggunaan kunci yang disempurnakan (EKU) adalah kumpulan pengidentifikasi objek (OID) yang menunjukkan aplikasi yang menggunakan kunci. .NET Framework 4.6
Switch.System.Net.
DontEnableSchSendAuxRecord
Menonaktifkan mitigasi TLS1.0 Browser Exploit Against SSL/TLS (BEAST) dengan menonaktifkan penggunaan SCH_SEND_AUX_RECORD. .NET Framework 4.6
Switch.System.Net.
DontEnableSchUseStrongCrypto
Mengontrol apakah kelas System.Net.ServicePointManager dan System.Net.Security.SslStream dapat menggunakan protokol SSL 3.0. Untuk informasi selengkapnya, lihat Mitigasi: Protokol TLS. .NET Framework 4.6
Switch.System.Net.
DontEnableSystemDefaultTlsVersions
Menonaktifkan versi SystemDefault TLS yang kembali ke default Tls12, Tls11, Tls. .NET Framework 4.7
Switch.System.Net.
DontEnableTlsAlerts
Menonaktifkan Pemberitahuan sisi server TLS SSLStream. .NET Framework 4.7
Switch.System.Runtime.InteropServices.
DoNotMarshalOutByrefSafeArrayOnInvoke
Mengontrol apakah parameter ByRef SafeArray di peristiwa interop COM disusun kembali ke kode native (false) atau apakah penyusunan kembali ke kode native dinonaktifkan (true). .NET Framework 4.8
Switch.System.Runtime.Serialization.
DoNotUseECMAScriptV6EscapeControlCharacter
Mengontrol apakah DataContractJsonSerializer menserialisasikan beberapa karakter kontrol berdasarkan standar ECMAScript V6 dan V8. Untuk informasi selengkapnya, lihat Mitigasi: Serialisasi Karakter Kontrol dengan DataContractJsonSerializer .NET Framework 4.7
Switch.System.Runtime.Serialization.
DoNotUseTimeZoneInfo
Mengontrol apakah DataContractJsonSerializer mendukung beberapa penyesuaian atau hanya satu penyesuaian untuk zona waktu. Jika true, tombol tersebut menggunakan jenis untuk menserialisasikan TimeZoneInfo dan mendeserialisasi data tanggal dan waktu; jika tidak, tombol tersebut menggunakan jenis TimeZone, yang tidak mendukung beberapa aturan penyesuaian. .NET Framework 4.6.2
Switch.System.Runtime.Serialization.UseNewMaxArraySize Mengontrol apakah System.Runtime.Serialization.ObjectManager menggunakan ukuran array yang lebih besar selama serialisasi dan deserialisasi objek. Atur tombol ini ke true untuk meningkatkan performa serialisasi dan deserialisasi grafik objek besar berdasarkan jenis seperti BinaryFormatter. .NET Framework 4.7.2
Switch.System.Security.ClaimsIdentity.
SetActorAsReferenceWhenCopyingClaimsIdentity
Mengontrol apakah konstruktor ClaimsIdentity(IIdentity) mengatur properti ClaimsIdentity.Actor objek baru dengan referensi objek yang sudah ada. Untuk informasi selengkapnya, lihat Mitigasi: Konstruktor ClaimsIdentity. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
AesCryptoServiceProvider.DontCorrectlyResetDecryptor
Mengontrol apakah upaya untuk menggunakan kembali dekriptor AesCryptoServiceProvider menampilkan CryptographicException. Untuk informasi selengkapnya, lihat dekriptor AesCryptoServiceProvider menyediakan transformasi yang dapat digunakan kembali. .NET Framework 4.6.2
Switch.System.Security.Cryptography.
DoNotAddrOfCspParentWindowHandle
Mengontrol apakah nilai properti CspParameters.ParentWindowHandle adalah IntPtr yang merepresentasikan lokasi memori handel jendela, atau apakah itu adalah handel jendela (HWND). Untuk informasi selengkapnya, lihat Mitigasi: CspParameters.ParentWindowHandle Mengharapkan HWND. .NET Framework 4.7
Switch.System.Security.Cryptography.
UseLegacyFipsThrow
Mengontrol apakah penggunaan kelas kriptografi terkelola dalam mode FIPS menampilkan CryptographicException (true) atau bergantung pada implementasi pustaka sistem (false). .NET Framework 4.8
Switch.System.Security.Cryptography.Pkcs.
UseInsecureHashAlgorithms
Menentukan apakah default untuk beberapa operasi SignedCMS adalah SHA1 atau SHA256.
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.1
Switch.System.Security.Cryptography.X509Certificates.
ECDsaCertificateExtensions.UseLegacyPublicKeyReader
Mengontrol apakah metode ECDsaCertificateExtensions.GetECDsaPublicKey menangani semua kurva bernama dengan benar yang didukung oleh sistem operasi (false) atau kembali ke perilaku lama. .NET Framework 4.8
Switch.System.Security.Cryptography.Xml.
UseInsecureHashAlgorithms
Menentukan apakah default untuk beberapa operasi SignedXML adalah SHA1 atau SHA256.
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
AllowUnsignedToHeader
Menentukan apakah mode keamanan TransportWithMessageCredential mengizinkan pesan dengan header "ke" yang tidak bertanda. Ini adalah tombol keikutsertaan. Untuk informasi selengkapnya, lihat Perubahan Runtime dalam .NET Framework 4.6.1. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableAddressHeaderCollectionValidation>
Mengontrol apakah konstruktor AddressHeaderCollection(IEnumerable<AddressHeader>) menampilkan ArgumentException jika salah satu elemen adalah null. .NET Framework 4.7.1
Switch.System.IdentityModel.
DisableCngCertificates
Menentukan apakah upaya untuk menggunakan sertifikat X509 dengan penyedia penyimpanan kunci CSG menampilkan pengecualian. Untuk informasi selengkapnya, lihat Keamanan transportasi WCF mendukung sertifikat yang disimpan menggunakan CNG. .NET Framework 4.6.1
Switch.System.ServiceModel.
DisableExplicitConnectionCloseHeader
Saat menggunakan transportasi HTTP dengan layanan yang dihosting sendiri, mengatur nilai ini ke true menyebabkan WCF mengabaikan aplikasi yang menambahkan header Connection: close ke header respons untuk permintaan. Mengatur nilai ini ke false memungkinkan penambahan header Connection: close ke header respons, yang menyebabkan penutupan soket permintaan setelah respons dikirim. .NET Framework 4.6
Switch.System.ServiceModel.
DisableOperationContextAsyncFlow
Menangani kebuntuan akibat dari pembatasan instans layanan re-entrant ke satu thread eksekusi pada satu waktu. .NET Framework 4.6.2
Switch.System.ServiceModel.
DisableUsingServicePointManagerSecurityProtocols
Bersama dengan Switch.System.Net.DontEnableSchUseStrongCrypto, menentukan apakah keamanan pesan WCF menggunakan TLS 1.1 dan TLS 1.2. .NET Framework 4.7
Switch.System.ServiceModel.
DontEnableSystemDefaultTlsVersions
Nilai false menetapkan konfigurasi default untuk memungkinkan sistem operasi memilih protokol. Nilai true menetapkan default ke protokol tertinggi yang tersedia. (Juga tersedia di cabang layanan versi kerangka kerja sebelumnya) .NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InMsmqEncryptionAlgorithm
Menentukan apakah algoritma penandatanganan pesan default untuk pesan MSMQ dalam WCF adalah SHA1 atau SHA256.
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.
UseSha1InPipeConnectionGetHashAlgorithm
Mengontrol apakah WCF menggunakan hash SHA1 atau SHA256 untuk menghasilkan nama acak untuk pipa yang dinamai.
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.1
Switch.System.ServiceModel.Internals
IncludeNullExceptionMessageInETWTrace
Mengontrol apakah akan menampilkan NullReferenceException saat pesan pengecualian adalah null. .NET Framework 4.7
Switch.System.ServiceProcess.
DontThrowExceptionsOnStart
Mengontrol apakah pengecualian yang ditampilkan di startup layanan disebarkan ke pemanggil metode ServiceBase.Run. .NET Framework 4.7.1
Switch.System.Threading.UseNetCoreTimer Mengontrol apakah instans Timer memanfaatkan peningkatan performa untuk lingkungan skala tinggi. Jika true, peningkatan performa diaktifkan; jika false (nilai default), peningkatan tersebut dinonaktifkan. .NET Framework 4.8
Switch.System.Uri.
DontEnableStrictRFC3986ReservedCharacterSets
Menentukan apakah karakter yang dienkode persen tertentu yang terkadang diterjemahkan kini secara konsisten dibiarkan dienkode. Jika true, karakter tersebut didekodekan; jika tidak, false. .NET Framework 4.7.2
Switch.System.Uri.
DontKeepUnicodeBidiFormattingCharacters
Menentukan penanganan karakter dua arah Unicode dalam URI. true untuk menghapus karakter tersebut dari URI; false untuk mempertahankan dan mengenkode persen dari karakter tersebut. .NET Framework 4.7.2
Switch.System.Windows.Controls.Grid.
StarDefinitionsCanExceedAvailableSpace
Menentukan apakah Windows Presentation Foundation menerapkan algoritma lama (true) atau algoritma baru (false) dalam mengalokasikan ruang ke *-columns. Untuk informasi selengkapnya, lihat Mitigasi: Alokasi Ruang Kontrol Kisi ke kolom Bintang. .NET Framework 4.7
Switch.System.Windows.Controls.TabControl.
SelectionPropertiesCanLagBehindSelectionChangedEvent
Mengontrol apakah pemilih atau kontrol tab selalu memperbarui nilai properti nilai yang dipilih sebelum memunculkan perubahan peristiwa pilihan. .NET Framework 4.7.1
Switch.System.Windows.Controls.Text.
UseAdornerForTextboxSelectionRendering
Menentukan apakah perenderan pilihan berdasarkan non-Adorner tersedia untuk kontrol TextBox dan PasswordBox untuk mencegah teks yang tertutup (false), atau apakah teks hanya dirender dalam lapisan Adorner (true). .NET Framework 4.7.2
Switch.System.Windows.Data.Binding.
IListIndexerHidesCustomIndexer
Mengontrol apakah pengindeks IList kustom digunakan secara keliru (true) atau secara benar (false) oleh kelas System.Windows.Data.Binding. .NET Framework 4.8
Switch.System.Windows.DoNotScaleForDpiChanges Menentukan apakah perubahan DPI terjadi pada per sistem (nilai false) atau basis per monitor (nilai true). .NET Framework 4.6.2
Switch.System.Windows.
DoNotUsePresentationDpiCapabilityTier2OrGreater
Mengontrol apakah peningkatan ukuran kontrol dalam System.Windows.Interop.HwndHost saat WPF berjalan dalam mode yang sensitif per monitor dinonaktifkan (true) atau diaktifkan (false). .NET Framework 4.8
Switch.System.Windows.Forms.
DisconnectUiaProvidersOnWmDestroy
Kontrol apakah penyedia terputus saat jendela kontrol yang sesuai dihentikan (true) atau tidak (false). Sakelar ini memberikan keikutsertaan ke perbaikan performa untuk mengatasi kebocoran IRawElementProviderSimple objek. .NET Framework 4.8
Switch.System.Windows.Forms.
DomainUpDown.UseLegacyScrolling
Menentukan apakah pengembang perlu menangani tindakan DomainUpDown.UpButton() secara khusus saat teks kontrol tersedia. true untuk menangani tindakan UpButton(); false agar tindakan DomainUpDown.UpButton() dan DomainUpDown.DownButton() disinkronkan dengan benar. .NET Framework 4.7.2
Switch.System.Windows.Forms.
DontSupportReentrantFilterMessage
Menolak kode yang memungkinkan implementasi IMessageFilter.PreFilterMessage kustom memfilter pesan dengan aman tanpa menampilkan pengecualian saat metode Application.FilterMessage dipanggil. Untuk informasi selengkapnya, lihat Mitigasi: Implementasi IMessageFilter.PreFilterMessage Kustom. .NET Framework 4.6.1
Switch.System.Windows.Forms.
UseLegacyContextMenuStripSourceControlValue
Menentukan apakah properti ContextMenuStrip.SourceControl menampilkan kontrol sumber saat pengguna membuka menu dari kontrol ToolStripMenuItem berlapis. true untuk menampilkan null, perilaku lama; false untuk menampilkan kontrol sumber. .NET Framework 4.7.2
Switch.System.Windows.Forms.UseLegacyToolTipDisplay Mengontrol apakah dukungan pemanggilan tooltip dinonaktifkan (true) atau diaktifkan (false). Mengaktifkan dukungan pemanggilan tooltip juga memerlukan fitur aksesibilitas lama yang ditentukan oleh Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, dan Switch.UseLegacyAccessibilityFeatures.3 semuanya dinonaktifkan (diatur ke false). .NET Framework 4.8
Switch.System.Windows.Input.Stylus.
EnablePointerSupport
Menentukan apakah tumpukan stylus/sentuh berbasis WM_POINTERdinonaktifkan dalam aplikasi WPF. Untuk informasi selengkapnya, lihat Mitigasi: Dukungan Stylus dan Sentuhan Berbasis Pointer .NET Framework 4.7
Switch.System.Windows.Markup.
DoNotUseSha256ForMarkupCompilerChecksumAlgorithm
Menentukan apakah algoritma hash default yang digunakan untuk checksum adalah SHA256 (false) atau SHA1 (true).
Karena masalah tabrakan dengan SHA1, Microsoft merekomendasikan SHA256.
.NET Framework 4.7.2
Switch.System.Windows.Media.ImageSourceConverter.
OverrideExceptionWithNullReferenceException
Mengontrol apakah NullReferenceException lama ditampilkan, bukan pengecualian yang mengindikasikan penyebab pengecualian secara lebih spesifik (seperti DirectoryNotFoundException atau FileNotFoundException. Tindakan ini dimaksudkan untuk digunakan oleh kode yang bergantung pada penanganan NullReferenceException. .NET Framework 4.7
Switch.System.Workflow.ComponentModel.
UseLegacyHashForXomlFileChecksum
Mengontrol apakah hashing checksum file XOML dalam build proyek alur kerja menggunakan algoritma MD5 (true), atau apakah mereka menggunakan algoritma SHA256 yang diperkenalkan sebagai algoritma default dalam .NET Framework 4.8.
Karena masalah tabrakan dengan MD5, Microsoft merekomendasikan SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForSqlTrackingCacheKey
Mengontrol apakah hashing checksum oleh SqlTrackingService menggunakan algoritma MD5 (true) untuk string yang di-cache, atau apakah menggunakan algoritma SHA256 yang diperkenalkan sebagai default dalam .NET Framework 4.8.
Karena masalah tabrakan dengan MD5, Microsoft merekomendasikan SHA256.
.NET Framework 4.8
Switch.System.Workflow.Runtime.
UseLegacyHashForWorkflowDefinitionDispenserCacheKey
Mengontrol apakah hashing checksum oleh Runtime Alur Kerja menggunakan algoritma MD5 (true) untuk definisi alur kerja yang di-cache, atau apakah menggunakan algoritma SHA256 yang diperkenalkan sebagai algoritma default dalam .NET Framework 4.8.
Karena masalah tabrakan dengan MD5, Microsoft merekomendasikan SHA256.
.NET Framework 4.8
Switch.UseLegacyAccessibilityFeatures Mengontrol apakah fitur aksesibilitas yang tersedia dan dimulai dengan .NET Framework 4.7.1 diaktifkan atau dinonaktifkan. .NET Framework 4.7.1
Switch.UseLegacyAccessibilityFeatures.2 Mengontrol apakah fitur aksesibilitas yang tersedia dan dimulai dengan .NET Framework 4.7.2 diaktifkan (false) atau dinonaktifkan (true). Jika true, Switch.UseLegacyAccessibilityFeatures juga harus berupa true untuk mengaktifkan fitur aksesibilitas .NET Framework 4.7.1. .NET Framework 4.7.2
Switch.UseLegacyAccessibilityFeatures.3 Mengontrol apakah fitur aksesibilitas yang ditampilkan dalam .NET Framework 4.8 diaktifkan (false) atau dinonaktifkan (true). Jika true, Switch.UseLegacyAccessibilityFeatures dan Switch.UseLegacyAccessibilityFeatures.2 juga harus berupa true. .NET Framework 4.8
Switch.UseLegacyToolTipDisplay Mengontrol apakah tooltip ditampilkan saat pengguna mengarahkan kursor mouse ke kontrol WPF (true), atau apakah tooltip tersebut ditampilkan baik di fokus keyboard maupun melalui tombol pintasan keyboard (false, perilaku default). Untuk aplikasi yang berjalan di .NET Framework 4.8 tetapi menargetkan .NET Framework versi sebelumnya, mengaktifkan dukungan kunci pintasan dan fokus keyboard mengharuskan bahwa Switch.UseLegacyAccessibilityFeatures, Switch.UseLegacyAccessibilityFeatures.2, dan Switch.UseLegacyAccessibilityFeatures.3 semuanya diatur ke false. .NET Framework 4.8
Switch.System.Xml.
IgnoreEmptyKeySequences
Mengontrol apakah urutan kunci kosong dalam kunci gabungan diabaikan oleh validasi skema XSD. Untuk informasi selengkapnya, lihat Mitigasi: Validasi Skema XML. .NET Framework 4.6

Catatan

Daripada menambahkan elemen AppContextSwitchOverrides ke file konfigurasi aplikasi, Anda juga dapat mengatur sakelar secara terprogram dengan memanggil metode AppContext.SetSwitch.

Pengembang pustaka juga dapat menentukan tombol kustom untuk memungkinkan pemanggil menolak fungsi yang berubah dan diperkenalkan dalam versi yang lebih baru dari pustaka mereka. Untuk informasi selengkapnya, lihat AppContext kelas.

Tombol dalam aplikasi ASP.NET

Anda dapat mengonfigurasikan aplikasi ASP.NET untuk menggunakan pengaturan kompatibilitas dengan menambahkan elemen <Tambahkan> ke bagian <appSettings> dari file web.config.

Contoh berikut menggunakan elemen <add> untuk menambahkan dua pengaturan ke bagian <appSettings> 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>

Contoh

Contoh berikut menggunakan elemen AppContextSwitchOverrides untuk menentukan tombol kompatibilitas aplikasi tunggal, Switch.System.Globalization.NoAsyncCurrentCulture, yang mencegah budaya menyebar di seluruh thread dalam panggilan metode asinkron.

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

Contoh berikut menggunakan elemen AppContextSwitchOverrides untuk menentukan dua tombol kompatibilitas aplikasi, Switch.System.Globalization.NoAsyncCurrentCulture dan Switch.System.IO.BlockLongPaths. Titik koma memisahkan dua pasangan nama/nilai.

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

Lihat juga