Compartir a través de


System.Security.Cryptography.Oid es funcionalmente de solo inicialización

La clase System.Security.Cryptography.Oid, que se usa para representar valores de identificador de objeto ASN.1 y sus nombres "descriptivos", antes era completamente mutable. Esta mutabilidad se solía pasar por alto o aparecía por sorpresa. Los establecedores de propiedades ahora inician PlatformNotSupportedException cuando se intenta cambiar el valor después de haberlo asignado.

Descripción del cambio

En versiones anteriores, los establecedores de propiedades en Oid se pueden usar para cambiar el valor de las propiedades FriendlyName y Value.

En .NET 5 y versiones posteriores, los establecedores de propiedad solo se pueden usar para inicializar el valor. Una vez que la propiedad tiene un valor, ya sea desde un constructor o una llamada anterior al establecedor de propiedades, dicho establecedor de propiedades siempre inicia PlatformNotSupportedException.

Motivo del cambio

Este cambio permite reutilizar objetos Oid como parte de los valores devueltos en las API públicas para reducir los perfiles de asignación de objetos. Evita la necesidad de crear copias "defensivas" temporales cuando se usan valores Oid como entradas.

Versión introducida

5.0

Evite el uso de los establecedores de propiedades Oid que no sean para la inicialización de objetos. Para representar un nuevo valor, use una nueva instancia en lugar de cambiar el valor en un objeto existente.

API afectadas