public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result)
{
// good for accessing child dictionary members.
var index = indexes.Select(each => each.ToString()).Aggregate((current, each) => current + ", " + each).Trim(' ', ',');
if (index.StartsWithNumber( )) {
result = GetProperty(GetIndexedPropertyNames().Skip( index.ToInt32(0)).FirstOrDefault());
return true;
}
var child = GetElement(index);
if (child == null) {
Console.WriteLine("object doesn't have child element [{0}] -- returning empty string", index);
result = string.Empty;
return true;
}
result = child;
return true;
}