/// <summary> /// Write a string value. /// </summary> /// <param name="writer">The text writer to write the output to.</param> /// <param name="value">String value to be written.</param> /// <param name="stringEscapeOption">The string escape option.</param> /// <param name="buffer">Char buffer to use for streaming data</param> internal static void WriteValue(TextWriter writer, string value, ODataStringEscapeOption stringEscapeOption, ref char[] buffer, ICharArrayPool arrayPool = null) { Debug.Assert(writer != null, "writer != null"); if (value == null) { writer.Write(JsonConstants.JsonNullLiteral); } else { JsonValueUtils.WriteEscapedJsonString(writer, value, stringEscapeOption, ref buffer, arrayPool); } }
/// <summary> /// Write a string value. /// </summary> /// <param name="writer">The text writer to write the output to.</param> /// <param name="value">String value to be written.</param> /// <param name="buffer">Char buffer to use for streaming data</param> internal static void WriteValue(TextWriter writer, string value, ref char[] buffer) { Debug.Assert(writer != null, "writer != null"); if (value == null) { writer.Write(JsonConstants.JsonNullLiteral); } else { JsonValueUtils.WriteEscapedJsonString(writer, value, ref buffer); } }
/// <summary> /// Write the name for the object property. /// </summary> /// <param name="name">Name of the object property.</param> public void WriteName(string name) { Debug.Assert(!string.IsNullOrEmpty(name), "The name must be specified."); Debug.Assert(this.scopes.Count > 0, "There must be an active scope for name to be written."); Debug.Assert(this.scopes.Peek().Type == ScopeType.Object, "The active scope must be an object scope for name to be written."); Scope currentScope = this.scopes.Peek(); if (currentScope.ObjectCount != 0) { this.writer.Write(JsonConstants.ObjectMemberSeparator); } currentScope.ObjectCount++; JsonValueUtils.WriteEscapedJsonString(this.writer, name, this.stringEscapeOption, this.wrappedBuffer); this.writer.Write(JsonConstants.NameValueSeparator); }