Bagikan melalui


API dengan nama kuat menampilkan PlatformNotSupportedException

Beberapa API yang tidak didukung di .NET/.NET Core tetapi tidak melakukan apa pun ketika diakses telah diubah untuk sekarang melemparkan PlatformNotSupportedException pada waktu proses. Sebelumnya, menggunakan API ini pada akhirnya akan menghasilkan pengecualian run-time lebih lanjut; pengecualian sekarang dilemparkan ketika jenisnya dibuat atau pertama kali diakses.

Perilaku sebelumnya

Di versi sebelumnya, memanggil AssemblyName.KeyPair atau StrongNameKeyPair(Byte[]) tidak ada operasi. Memanggil StrongNameKeyPair(FileStream) baca aliran tetapi sebaliknya tidak melakukan apa-apa.

Perilaku yang baru

Mulai dari .NET 6, masing-masing dari tiga API yang PlatformNotSupportedException terpengaruh melemparkan pada waktu proses.

Versi yang diperkenalkan

.NET 6

Jenis perubahan yang melanggar

Perubahan ini dapat memengaruhi kompatibilitas biner.

Alasan untuk berubah

Sebelumnya, aplikasi yang memanggil API dikompilasi dan dijalankan, tetapi segera setelah instans digunakan dalam jalur kode apa pun, ia melemparkan pengecualian run-time. Untuk membuatnya lebih eksplisit bahwa skenario ini tidak didukung, logika pelemparan pengecualian dipindahkan ke konstruktor instans. Jika tidak ada instans yang dibuat, pengecualian juga dilemparkan dalam titik masuk publik yang mengembalikan jenis ini, yaitu, AssemblyName.KeyPair.

Penandatanganan nama kuat tidak didukung di .NET/.NET Core, dan tidak ada solusi.

Catatan

.NET Core/5+ tidak pernah memeriksa tanda tangan dalam runtimenya. Namun, jika Anda menargetkan pustaka lintas platform (misalnya, paket autentikasi dasar yang menargetkan .NET Standard 2.0, sehingga berjalan pada .NET Framework juga), maka penamaan yang kuat adalah ide yang baik untuk kompatibilitas lintas runtime. .NET Framework terus memberlakukan penamaan yang kuat jika aplikasi panggilan diberi nama yang kuat. Anda dapat menamai rakitan yang kuat di semua versi .NET menggunakan alat Sn.exe . Untuk informasi selengkapnya, lihat Penandatanganan nama yang kuat.

API yang Terpengaruh

Lihat juga