Share via


Funcionalmente, o System.Security.Cryptography.Oid é somente inicialização

Anteriormente, a classe System.Security.Cryptography.Oid, que é usada para representar valores do Identificador de Objeto ASN.1 e seus nomes "amigáveis", era totalmente mutável. Essa mutabilidade era muitas vezes negligenciada ou aparecia como uma surpresa. Os setters de propriedade agora geram um PlatformNotSupportedException quando você tenta alterar o valor depois que ele já foi atribuído.

Descrição das alterações

Em versões anteriores, os setters de propriedade em Oid podem ser usados para alterar o valor das propriedades FriendlyName e Value.

No .NET 5 e versões posteriores, os setters de propriedade só podem ser usados para inicializar o valor. Depois que a propriedade tiver um valor, seja de um construtor ou de uma chamada anterior para o setter de propriedade, o setter de propriedade sempre gerará um PlatformNotSupportedException.

Motivo da alteração

Essa alteração permite a reutilização de objetos Oid como parte dos valores retornados em APIs públicas para reduzir os perfis de alocação de objeto. Ela evita a necessidade de criar cópias temporárias "defensivas" quando os valores Oid são usados como entradas.

Versão introduzida

5,0

Evite usar os setters de propriedade Oid que não sejam para inicialização de objeto. Para representar um novo valor, use uma nova instância em vez de alterar o valor em um objeto existente.

APIs afetadas