public override bool TryGetMember( GetMemberBinder binder, out object result) { result = null; if (binder.Name == "Value") result = _elements[0].Value; else if (binder.Name == "Count") result = _elements.Count; else { var attr = _elements[0].Attribute( XName.Get(binder.Name ) ); if (attr != null) result = attr.Value; else { var items = _elements.Descendants( XName.Get(binder.Name ) ); if (items == null || items.Count() == 0) return false; result = new DynamicXml( items ); } } return true; }
public override bool TryGetIndex( GetIndexBinder binder, object[] indexes, out object result) { int ndx = (int)indexes[0]; result = new DynamicXml( _elements[ndx] ); return true; }