System.Security.Cryptography.Oid è in termini funzionali init-only
La classe System.Security.Cryptography.Oid, usata per rappresentare i valori dell'identificatore di oggetto ASN.1 e i relativi nomi "descrittivi", era in precedenza completamente modificabile. Questa mutabilità è stata spesso trascurata o è inaspettata. I setter di proprietà generano ora PlatformNotSupportedException quando si tenta di modificare il valore dopo che è già stato assegnato.
Descrizione delle modifiche
Nelle versioni precedenti, i setter di proprietà in Oid potevano essere usati per modificare il valore delle proprietà FriendlyName e Value.
In .NET 5 e versioni successive, i setter di proprietà possono essere usati solo per inizializzare il valore. Una volta che la proprietà ha un valore, da un costruttore o una chiamata precedente al setter della proprietà, il setter della proprietà genera sempre un oggetto PlatformNotSupportedException.
Motivo della modifica
Questa modifica consente il riutilizzo degli oggetti Oid come parte dei valori restituiti nelle API pubbliche per ridurre i profili di allocazione degli oggetti. Ciò evita la necessità di creare copie temporanee "difensive" quando i valori Oid vengono usati come input.
Versione con introduzione
5.0
Azione consigliata
Evitare di usare i setter di proprietà Oid eccetto che per l'inizializzazione degli oggetti. Per rappresentare un nuovo valore, usare una nuova istanza anziché modificare il valore in un oggetto esistente.