Funktionalität von System.Security.Cryptography.Oid mit init-only-Eigenschaft
Die System.Security.Cryptography.Oid-Klasse, die zum Darstellen von ASN.1-Objektbezeichnerwerten und deren „Anzeigenamen“ verwendet wird, war zuvor vollständig änderbar. Diese Veränderlichkeit wurde oft übersehen oder überraschte Benutzer. Die Eigenschaftensetter lösen jetzt eine PlatformNotSupportedException-Klasse aus, wenn Sie versuchen, den Wert zu ändern, nachdem dieser bereits zugewiesen wurde.
Änderungsbeschreibung
In früheren Versionen können die Eigenschaftensetter für die Oid-Klasse verwendet werden, um den Wert der Eigenschaften FriendlyName und Value zu ändern.
In .NET 5 und höheren Versionen können die Eigenschaftensetter nur zum Initialisieren eines Werts verwendet werden. Wenn die Eigenschaft entweder durch einen Konstruktor oder einen vorherigen Aufruf des Eigenschaftensetters über einen Wert verfügt, löst der Eigenschaftensetter immer eine PlatformNotSupportedException-Klasse aus.
Grund für die Änderung
Diese Änderung ermöglicht die Wiederverwendung von Oid-Objekten als Teil der Rückgabewerte in öffentlichen APIs, um Objektzuordnungsprofile zu reduzieren. Wenn Oid-Werte als Eingaben verwendet werden, müssen keine temporären „defensiven“ Kopien erstellt werden.
Eingeführt in Version
5.0
Empfohlene Maßnahme
Vermeiden Sie die Verwendung der Oid-Eigenschaftensetter (außer bei der Objektinitialisierung). Verwenden Sie eine neue Instanz, anstatt den Wert für ein vorhandenes Objekt zu ändern, wenn Sie einen neuen Wert darstellen möchten.