コード例 #1
0
        private static (TypeMarker, byte[]) Serialize(JToken propertyValue)
        {
            switch (propertyValue.Type)
            {
            case JTokenType.Undefined:
                Debug.Assert(false, "Undefined value cannot be in the JSON");
                return(default, null);

            case JTokenType.Null:
                Debug.Assert(false, "Null type should have been handled by caller");
                return(TypeMarker.Null, null);

            case JTokenType.Boolean:
                return(TypeMarker.Boolean, SqlSerializerFactory.GetDefaultSerializer <bool>().Serialize(propertyValue.ToObject <bool>()));

            case JTokenType.Float:
                return(TypeMarker.Double, SqlSerializerFactory.GetDefaultSerializer <double>().Serialize(propertyValue.ToObject <double>()));

            case JTokenType.Integer:
                return(TypeMarker.Long, SqlSerializerFactory.GetDefaultSerializer <long>().Serialize(propertyValue.ToObject <long>()));

            case JTokenType.String:
                return(TypeMarker.String, SqlVarCharSerializer.Serialize(propertyValue.ToObject <string>()));

            case JTokenType.Array:
                return(TypeMarker.Array, SqlVarCharSerializer.Serialize(propertyValue.ToString()));

            case JTokenType.Object:
                return(TypeMarker.Object, SqlVarCharSerializer.Serialize(propertyValue.ToString()));

            default:
                throw new InvalidOperationException($" Invalid or Unsupported Data Type Passed : {propertyValue.Type}");
            }
        }
コード例 #2
0
 private static (TypeMarker, byte[]) Serialize(JToken propertyValue)
 {
     return(propertyValue.Type switch
     {
         JTokenType.Boolean => (TypeMarker.Boolean, SqlSerializerFactory.GetDefaultSerializer <bool>().Serialize(propertyValue.ToObject <bool>())),
         JTokenType.Float => (TypeMarker.Double, SqlSerializerFactory.GetDefaultSerializer <double>().Serialize(propertyValue.ToObject <double>())),
         JTokenType.Integer => (TypeMarker.Long, SqlSerializerFactory.GetDefaultSerializer <long>().Serialize(propertyValue.ToObject <long>())),
         JTokenType.String => (TypeMarker.String, SqlVarcharSerializer.Serialize(propertyValue.ToObject <string>())),
         _ => throw new InvalidOperationException($"Invalid or Unsupported Data Type Passed : {propertyValue.Type}. "),
     });
コード例 #3
0
        private static (TypeMarker, byte[]) Serialize(JToken propertyValue)
        {
            SqlSerializerFactory sqlSerializerFactory = new SqlSerializerFactory();

            // UTF-8 Encoding
            SqlVarCharSerializer sqlVarcharSerializer = new SqlVarCharSerializer(size: -1, codePageCharacterEncoding: 65001);

            return(propertyValue.Type switch
            {
                JTokenType.Boolean => (TypeMarker.Boolean, sqlSerializerFactory.GetDefaultSerializer <bool>().Serialize(propertyValue.ToObject <bool>())),
                JTokenType.Float => (TypeMarker.Double, sqlSerializerFactory.GetDefaultSerializer <double>().Serialize(propertyValue.ToObject <double>())),
                JTokenType.Integer => (TypeMarker.Long, sqlSerializerFactory.GetDefaultSerializer <long>().Serialize(propertyValue.ToObject <long>())),
                JTokenType.String => (TypeMarker.String, sqlVarcharSerializer.Serialize(propertyValue.ToObject <string>())),
                _ => throw new InvalidOperationException($"Invalid or Unsupported Data Type Passed : {propertyValue.Type}. "),
            });