Bagikan melalui


System.Security.Cryptography.Oid secara fungsional init-saja

Kelas System.Security.Cryptography.Oid , yang digunakan untuk mewakili nilai Pengidentifikasi Objek ASN.1 dan nama "ramah" mereka, sebelumnya sepenuhnya dapat diubah. Mutasi ini sering diabaikan atau menjadi kejutan. Setter properti sekarang melempar PlatformNotSupportedException saat Anda mencoba mengubah nilai setelah ditetapkan.

Deskripsi perubahan

Di versi sebelumnya, setter Oid properti aktif dapat digunakan untuk mengubah nilai FriendlyName properti dan Value .

Di .NET 5 dan versi yang lebih baru, setter properti hanya dapat digunakan untuk menginisialisasi nilai. Setelah properti memiliki nilai, baik dari konstruktor atau panggilan sebelumnya ke setter properti, setter properti selalu melempar PlatformNotSupportedException.

Alasan untuk berubah

Perubahan ini memungkinkan penggunaan Oid kembali objek sebagai bagian dari nilai pengembalian dalam API publik untuk mengurangi profil alokasi objek. Ini menghindari kebutuhan untuk membuat salinan "defensif" sementara ketika Oid nilai digunakan sebagai input.

Versi yang diperkenalkan

5.0

Hindari menggunakan setter Oid properti selain untuk inisialisasi objek. Untuk mewakili nilai baru, gunakan instans baru alih-alih mengubah nilai pada objek yang ada.

API yang Terpengaruh