System.Security.Cryptography.Oid est fonctionnellement uniquement init

La classe System.Security.Cryptography.Oid, qui est 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é ignorée ou a été une 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 du changement

Ce changement permet la réutilisation d’objets Oid dans le cadre de valeurs renvoyées dans des API publiques afin de réduire les profils d’allocation d’objets. Il évite d’avoir à créer des copies « défensives » temporaires lorsque des valeurs Oid 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 d’un objet existant.

API affectées