XNodeReader
は内部クラスですが、XNode.CreateReader を呼び出すと XmlReader クラスからアクセスできます。 GetAttribute(Int32) メソッドの無効なインデックスに対して、XNodeReader
を除くすべての XmlReader の実装から ArgumentOutOfRangeException がスローされていました。 今回の変更により、無効なインデックスに対して XNodeReader.GetAttribute(int)
からも ArgumentOutOfRangeException がスローされるようになりました。
以前の動作
インデックスが無効な場合に、XNodeReader.GetAttribute(int)
から null
が返されました。
新しい動作
インデックスが無効な場合に、XNodeReader.GetAttribute(int)
から ArgumentOutOfRangeException が返されます。
導入されたバージョン
.NET 6
破壊的変更の種類
この変更はソースの互換性に影響を与える可能性があります。
変更理由
XmlReader.GetAttribute(int)
は適切に文書化されていますが、XNodeReader
は文書化されたとおりには動作していませんでした。 また、無効なインデックスに対する動作は、他の XmlReader の実装と矛盾していました。
推奨アクション
無効なインデックスを回避するには:
- XmlReader.AttributeCount を呼び出し、現在のノードの属性数を取得します。
- 次に、範囲
0..XmlReader.AttributeCount-1
の値を XmlReader.GetAttribute(Int32) に渡します。
影響を受ける API
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET