System.Security.Cryptography.Oid は機能的に初期化専用
ASN.1 オブジェクト識別子の値とその "わかりやすい" 名前を表すために使用される System.Security.Cryptography.Oid クラスは、以前は完全に変更可能でした。 この変更可能性は意外にも見落とされがちでした。 割り当てられた後に値を変更しようとすると、プロパティの setter で PlatformNotSupportedException がスローされるようになりました。
変更の説明
以前のバージョンでは、Oid のプロパティの setter を使用して、FriendlyName および Value プロパティの値を変更できます。
.NET 5 以降のバージョンでは、プロパティの setter は値の初期化にのみ使用できます。 プロパティにコンストラクターから、あるいはプロパティの setter の前の呼び出しからの値が設定されると、プロパティの setter で常に PlatformNotSupportedException がスローされます。
変更理由
この変更により、パブリック API で戻り値の一部として Oid オブジェクトを再利用し、オブジェクト割り当てプロファイルを減らせるようになります。 Oid 値が入力として使用されるときに、一時的な "防御用" コピーを作成する必要がなくなります。
導入されたバージョン
5.0
推奨アクション
オブジェクトの初期化以外に、Oid プロパティの setter を使用しないようにしてください。 新しい値を表す場合は、既存のオブジェクトの値を変更するのではなく、新しいインスタンスを使用します。
影響を受ける API
.NET