Почему XElement не имеет метода GetAttributeValue?

Иногда мне хотелось бы знать аргументы некоторых изменений API. Поскольку Google не помог мне с этим вопросом, возможно, может быть, StackOverflow. Почему Microsoft решила удалить вспомогательный метод GetAttribute для элементов XML? В мире System.Xml в MSXML был XmlElement.GetAttribute("x") как GetAttribute, оба из которых возвращают либо значение атрибута, либо пустую строку при отсутствии. С XElement там SetAttributeValue, но GetAttributeValue не было реализовано.

Конечно, не слишком много работы по модификации логики для тестирования и использования свойства XElement.Attribute("x").Value, но это не так удобно и предоставление функции полезности в одну сторону (SetAttributeValue), но не другая кажется странной. Кто-нибудь знает причины решения, чтобы я мог спокойно отдохнуть и, возможно, узнать что-то от него?

Ответы

Ответ 2

Не уверен точно, почему, но с помощью методов расширения С# вы можете решить проблему самостоятельно.

public static string GetAttributeValue(this XElement element, XName name)
{
    var attribute = element.Attribute(name);
    return attribute != null ? attribute.Value : null;
}

Позволяет:

element.GetAttributeValue("myAttributeName");