/// <summary> /// Initializes a new instance of the JsonBinaryNavigator class /// </summary> /// <param name="buffer">The (UTF-8) buffer to navigate.</param> /// <param name="skipValidation">whether to skip validation or not.</param> public JsonBinaryNavigator(byte[] buffer, bool skipValidation = false) { if (buffer == null) { throw new ArgumentNullException($"{nameof(buffer)} can not be null"); } if (buffer.Length < 1) { throw new ArgumentException($"{nameof(buffer)} must have at least one byte."); } this.rootNode = new BinaryNode(1, JsonBinaryEncoding.GetNodeType(buffer[1])); // false, since stream is not writeable // true, since buffer is visible this.binaryReader = new LittleEndianBinaryReader(new MemoryStream(buffer, 0, buffer.Length, false, true)); this.buffer = buffer; }
private BinaryNode CreateBinaryNode(int offset) { return(new BinaryNode(offset, JsonBinaryEncoding.GetNodeType(this.buffer[offset]))); }