TryConvertToString() static private method

static private TryConvertToString ( object value, Type type, string &s ) : bool
value object
type System.Type
s string
return bool
        private string GetPropertyName(
            JsonWriter writer,
            object name,
            JsonContract contract,
            out bool escape)
        {
            if (contract.ContractType == JsonContractType.Primitive)
            {
                JsonPrimitiveContract primitiveContract = (JsonPrimitiveContract)contract;
                if (primitiveContract.TypeCode == PrimitiveTypeCode.DateTime || primitiveContract.TypeCode == PrimitiveTypeCode.DateTimeNullable)
                {
                    DateTime dateTime = DateTimeUtils.EnsureDateTime((DateTime)name, writer.DateTimeZoneHandling);
                    escape = false;
                    StringWriter stringWriter = new StringWriter((IFormatProvider)CultureInfo.InvariantCulture);
                    DateTimeUtils.WriteDateTimeString((TextWriter)stringWriter, dateTime, writer.DateFormatHandling, writer.DateFormatString, writer.Culture);
                    return(stringWriter.ToString());
                }
                if (primitiveContract.TypeCode == PrimitiveTypeCode.DateTimeOffset || primitiveContract.TypeCode == PrimitiveTypeCode.DateTimeOffsetNullable)
                {
                    escape = false;
                    StringWriter stringWriter = new StringWriter((IFormatProvider)CultureInfo.InvariantCulture);
                    DateTimeUtils.WriteDateTimeOffsetString((TextWriter)stringWriter, (DateTimeOffset)name, writer.DateFormatHandling, writer.DateFormatString, writer.Culture);
                    return(stringWriter.ToString());
                }
                escape = true;
                return(Convert.ToString(name, (IFormatProvider)CultureInfo.InvariantCulture));
            }
            string s;

            if (JsonSerializerInternalWriter.TryConvertToString(name, name.GetType(), out s))
            {
                escape = true;
                return(s);
            }
            escape = true;
            return(name.ToString());
        }