Есть ли лучший способ получить свойства XmlReader NodeType? - PullRequest
2 голосов
/ 18 августа 2011

Исходя из этого , похоже, что каждый раз, когда я хочу получить имя элемента узла, или текстовое значение, или что-то еще, мне нужно использовать switch-case.

Так чтоЯ должен использовать что-то вроде этого:

while (reader.Read())
{
    switch (reader.NodeType)
    {
        case XmlNodeType.Element:
        nodeName = reader.Name;
        break;
    }
}

или я что-то упускаю, и это можно сделать короче и элегантнее (мне нужно использовать XmlReader, и я не в состоянии использовать LINQ to XML)?Идея необходимости использовать всю эту путаницу везде, чтобы получить эти маленькие кусочки информации, мне не очень нравится.Спасибо.

Ответы [ 2 ]

1 голос
/ 18 августа 2011

Нет кастинга, поэтому, насколько я вижу, вы можете просто пойти:

while(reader.Read())
{
    nodeName = reader.Name;
}

Я считаю, что у узлов всегда есть имя, по крайней мере, я могу ошибаться, но на самом деле они есть.

0 голосов
/ 18 августа 2011

Единственное, что касается случая Switch, так это то, что в ваших намерениях совершенно ясно, что я считаю важной вещью в современном программировании.

Однако, если вы устали писать все время, и я не могу винить вас, как насчет того, чтобы обернуть это в метод Расширения?

...