// Traversal support for node attributes. public static IEnumerable GetAttributes(DynamicXml element, ConfigurationConverterFunc converter) { if (element == null) { return(empty_); } return(element.Element.Attributes().Select( a => new ConfigurationAttribute(a, new DynamicConverter { Value = a.Value, Converter = converter }))); }
// Traversal support for nodes. public static IEnumerable GetDescendants(DynamicXml element, bool deep, ConfigurationConverterFunc converter) { if (element == null) { return(empty_); } var elements = deep ? element.Element.Descendants() : element.Element.Elements(); return(elements.Select( d => new ConfigurationElement(d, new DynamicXml(d) { Converter = converter }))); }