public bool MoveNext() { if (_inner.MoveNext() == false) { return(false); } if (_inner.Current is BlittableJsonReaderObject) { Current = new DynamicBlittableJson((BlittableJsonReaderObject)_inner.Current); return(true); } if (_inner.Current is BlittableJsonReaderArray) { Current = new DynamicBlittableArray((BlittableJsonReaderArray)_inner.Current); return(true); } if (_inner.Current is LazyStringValue) { Current = _inner.Current; return(true); } throw new NotSupportedException("Unknown blittable object"); }
private bool TryGet(string name, out object result) { if (!BlittableJsonReaderObject.TryGetMember(name, out result)) { return(false); } if (result is BlittableJsonReaderObject) { result = new DynamicBlittableJson((BlittableJsonReaderObject)result); } else if (result is BlittableJsonReaderArray) { result = new DynamicBlittableArray((BlittableJsonReaderArray)result); } return(true); }
public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) { var i = (int)(indexes[0]); var resultObject = BlittableJsonReaderArray[i]; if (resultObject is BlittableJsonReaderObject) { result = new DynamicBlittableJson((BlittableJsonReaderObject)resultObject); } else if (resultObject is BlittableJsonReaderArray) { result = new DynamicBlittableArray((BlittableJsonReaderArray)resultObject); } else { result = resultObject; } return(true); }