public static T TryGetAttributeValue <T>(this XElement root, string name, T defaultValue) { if (name == null) { throw new ArgumentNullException(nameof(name)); } try { if (!TryGetAttribute(root, name, out var attribute)) { return(defaultValue); } if (DataConversion.TryConvert(attribute.Value, out T result)) { return(result); } return(defaultValue); } catch (Exception) { return(defaultValue); } }
public static T GetNodeValue <T>(this XElement root, string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } var node = GetNode(root, name); return(DataConversion.Convert <T>(node.Value)); }
public static T GetAttributeValue <T>(this XElement root, string name) { if (name == null) { throw new ArgumentNullException(nameof(name)); } if (!TryGetAttribute(root, name, out var attribute)) { throw new InvalidOperationException($"Не удалось найти ноду с именем '{name}'."); } return(DataConversion.Convert <T>(attribute.Value)); }
public static T TryGetNodeValue <T>(this XElement root, string name, T defaultValue) { if (name == null) { throw new ArgumentNullException(nameof(name)); } var node = IsNodeExists(root, name) ? root.Elements(name).FirstOrDefault() : null; if (node == null) { return(defaultValue); } return(DataConversion.Convert <T>(node.Value)); }