针对无效索引的 XNodeReader.GetAttribute 行为
XNodeReader
是一个内部类,但如果调用 XNode.CreateReader,则可通过 XmlReader 类访问它。 除 XNodeReader
之外的所有 XmlReader 实现都对 GetAttribute(Int32) 方法中的无效索引引发 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)。