/// <summary> /// Pushes a new frame, e.g. when starting to process a lambda expression or a block expression. /// </summary> /// <param name="json">JSON representation of the serialization frame.</param> /// <param name="types">Type space used to lookup parameter types.</param> /// <returns>Frame containing mappings for the specified parameters.</returns> public DeserializationFrame PushFrame(Json.Expression json, TypeSpace types) { var frame = new DeserializationFrame(json, types); _environment.Push(frame); return(frame); }
/// <summary> /// Creates a new deserialization state object. /// </summary> /// <param name="globals">JSON representation of globals to make available.</param> /// <param name="types">Type space for lookup of types.</param> public DeserializationState(Json.Expression globals, TypeSpace types) { _environment = new Stack <DeserializationFrame>(); _globals = new DeserializationFrame(globals, types); }