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_POINTER dinonaktifkan 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk