無効なインデックスに対する XNodeReader.GetAttribute の動作
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