private bool TryGetEncodedSystemStringTypeMarker(string value, out JsonBinaryEncoding.MultiByteTypeMarker typeMarker) { typeMarker = new JsonBinaryEncoding.MultiByteTypeMarker(null); int systemStringId; if (JsonBinaryEncoding.TryGetSystemStringId(value, out systemStringId)) { const byte OneByteCount = JsonBinaryEncoding.TypeMarker.SystemString1ByteLengthMax - JsonBinaryEncoding.TypeMarker.SystemString1ByteLengthMin; if (systemStringId < OneByteCount) { byte[] typeMarkerBytes = new byte[] { (byte)(JsonBinaryEncoding.TypeMarker.SystemString1ByteLengthMin + (int)systemStringId) }; typeMarker = new JsonBinaryEncoding.MultiByteTypeMarker(typeMarkerBytes); } else { int twoByteOffset = ((int)systemStringId) - OneByteCount; byte[] typeMarkerBytes = new byte[] { (byte)((twoByteOffset / 0xFF) + JsonBinaryEncoding.TypeMarker.SystemString2ByteLengthMin), (byte)(twoByteOffset % 0xFF), }; typeMarker = new JsonBinaryEncoding.MultiByteTypeMarker(typeMarkerBytes); } return(true); } return(false); }
private bool TryGetEncodedStringTypeMarker(string value, out JsonBinaryEncoding.MultiByteTypeMarker typeMarker) { if (this.TryGetEncodedSystemStringTypeMarker(value, out typeMarker)) { return(true); } if (this.TryGetEncodedUserStringTypeMarker(value, out typeMarker)) { return(true); } return(false); }
private bool TryGetEncodedUserStringTypeMarker(string value, out JsonBinaryEncoding.MultiByteTypeMarker typeMarker) { typeMarker = new JsonBinaryEncoding.MultiByteTypeMarker(); return(false); }