public bool HasMember(object value, string member)
{
if (IsPrimitive(value))
return false;
var dict = value as IDictionary;
if (dict != null)
return dict.Contains(member);
var list = value as IList;
if (list != null)
{
int index = ParseInt(member, -1);
return index >= 0 && index < list.Count;
}
return false;
}