System.Runtime.Serialization.Json.XmlJsonWriter.StartText C# (CSharp) Method

StartText() private method

private StartText ( ) : void
return void
        private void StartText()
        {
            if (HasOpenAttribute)
            {
                throw new InvalidOperationException(SR.JsonMustUseWriteStringForWritingAttributeValues);
            }

            if ((_dataType == JsonDataType.None) && (_serverTypeValue != null))
            {
                throw new XmlException(SR.Format(SR.JsonMustSpecifyDataType, JsonGlobals.typeString, JsonGlobals.objectString, JsonGlobals.serverTypeString));
            }

            if (IsWritingNameWithMapping && !WrittenNameWithMapping)
            {
                // Don't write out any text content unless the local name has been written.
                // Not providing a better error message because localization deadline has passed.
                throw new XmlException(SR.Format(SR.JsonMustSpecifyDataType, JsonGlobals.itemString, string.Empty, JsonGlobals.itemString));
            }

            if ((_dataType == JsonDataType.String) ||
                (_dataType == JsonDataType.None))
            {
                CheckText(JsonNodeType.QuotedText);
                if (_nodeType != JsonNodeType.QuotedText)
                {
                    WriteJsonQuote();
                }
                _nodeType = JsonNodeType.QuotedText;
            }
            else if ((_dataType == JsonDataType.Number) ||
                (_dataType == JsonDataType.Boolean))
            {
                CheckText(JsonNodeType.StandaloneText);
                _nodeType = JsonNodeType.StandaloneText;
            }
            else
            {
                ThrowInvalidAttributeContent();
            }
        }