Partager via


System.Security.Cryptography.Oid est fonctionnellement "init-only" (initialisable uniquement)

La System.Security.Cryptography.Oid classe, utilisée pour représenter les valeurs de l’identificateur d’objet ASN.1 et leurs noms « conviviaux », était auparavant entièrement mutable. Cette mutabilité a souvent été négligée ou a pris par surprise. Les setters de propriétés lèvent maintenant une exception PlatformNotSupportedException lorsque vous tentez de modifier la valeur une fois qu’elle a déjà été affectée.

Description de la modification

Dans les versions précédentes, les setters de propriétés sur Oid peuvent être utilisés pour modifier la valeur des propriétés FriendlyName et Value.

Dans .NET 5 et versions ultérieures, les setters de propriétés ne peuvent être utilisés que pour initialiser la valeur. Une fois que la propriété a une valeur, à partir d’un constructeur ou d’un appel précédent au setter de propriétés, le setter de propriétés lève toujours une exception PlatformNotSupportedException.

Raison de la modification

Cette modification permet la réutilisation des Oid objets dans le cadre des valeurs de retour dans les API publiques pour réduire les profils d’allocation d’objets. Il évite la nécessité de créer des copies temporaires « défensives » lorsque Oid les valeurs sont utilisées comme entrées.

Version introduite

5,0

Évitez d’utiliser les setters de propriétés Oid autres que pour l’initialisation d’objet. Pour représenter une nouvelle valeur, utilisez une nouvelle instance au lieu de modifier la valeur sur un objet existant.

API affectées