예제 #1
0
                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");
                }
예제 #2
0
        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);
        }
예제 #3
0
            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);
            }