Comportamento de XNodeReader.GetAttribute para índice inválido
XNodeReader
é uma classe interna, mas é acessível por meio da classe XmlReader se você chamar XNode.CreateReader. Todas as implementações XmlReader, exceto XNodeReader
geram uma ArgumentOutOfRangeException para um índice inválido no método GetAttribute(Int32). Com essa alteração, XNodeReader.GetAttribute(int)
agora também gera uma ArgumentOutOfRangeException para um índice inválido.
Comportamento antigo
XNodeReader.GetAttribute(int)
retornava null
se o índice fosse inválido.
Novo comportamento
XNodeReader.GetAttribute(int)
gera uma ArgumentOutOfRangeException se o índice for inválido.
Versão introduzida
.NET 6
Tipo de alteração interruptiva
Essa alteração pode afetar a compatibilidade da origem.
Motivo da alteração
XmlReader.GetAttribute(int)
está bem documentado, e XNodeReader
não estava se comportando como documentado. Seu comportamento para índices inválidos também era inconsistente com outras implementações de XmlReader.
Ação recomendada
Para evitar um índice inválido:
- Chame XmlReader.AttributeCount para recuperar o número de atributos no nó atual.
- Em seguida, passe um valor de intervalo
0..XmlReader.AttributeCount-1
para XmlReader.GetAttribute(Int32).