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
Tindakan yang direkomendasikan
Hindari menggunakan setter Oid properti selain untuk inisialisasi objek. Untuk mewakili nilai baru, gunakan instans baru alih-alih mengubah nilai pada objek yang ada.