System.Security.Cryptography.Oid är funktionellt init-only
Klassen System.Security.Cryptography.Oid , som används för att representera ASN.1-objektidentifierarvärden och deras "egna" namn, var tidigare helt föränderlig. Denna föränderlighet förbises ofta eller kom som en överraskning. Egenskapsuppsättningarna genererar nu en PlatformNotSupportedException när du försöker ändra värdet när det redan har tilldelats.
Ändra beskrivning
I tidigare versioner kan egenskapsuppsättningarna på Oid användas för att ändra värdet för FriendlyName egenskaperna och Value .
I .NET 5 och senare versioner kan egenskapsuppsättningarna endast användas för att initiera värdet. När egenskapen har ett värde, antingen från en konstruktor eller ett tidigare anrop till egenskapsuppsättningen, genererar egenskapsuppsättningen alltid en PlatformNotSupportedException.
Orsak till ändringen
Den här ändringen gör det möjligt att återanvända Oid objekt som en del av returvärden i offentliga API:er för att minska objektallokeringsprofiler. Det undviker behovet av att skapa tillfälliga "defensiva" kopior när Oid värden används som indata.
Version introducerad
5,0
Rekommenderad åtgärd
Undvik att använda andra egenskapsuppsättningar Oid än för objektinitiering. Om du vill representera ett nytt värde använder du en ny instans i stället för att ändra värdet på ett befintligt objekt.