예제 #1
0
        /// <summary>
        /// Creates metadata for a primitive or a type with a custom converter.
        /// </summary>
        /// <typeparam name="T">The generic type definition.</typeparam>
        /// <returns>A <see cref="JsonTypeInfo{T}"/> instance representing the type.</returns>
        public static JsonTypeInfo <T> CreateValueInfo <T>(JsonSerializerOptions options, JsonConverter converter)
        {
            JsonTypeInfo <T> info = new JsonTypeInfoInternal <T>(options, ConverterStrategy.Value);

            info.PropertyInfoForTypeInfo = CreateJsonPropertyInfoForClassInfo(typeof(T), info, converter, options);
            return(info);
        }
예제 #2
0
        /// <summary>
        /// Creates metadata for a primitive or a type with a custom converter.
        /// </summary>
        /// <typeparam name="T">The generic type definition.</typeparam>
        /// <typeparam name="TConverterReturn">The generic type definition.</typeparam>
        /// <returns>A <see cref="JsonTypeInfo{T}"/> instance representing the type.</returns>
        public static JsonTypeInfo <T> CreateValueInfo <T, TConverterReturn>(JsonSerializerOptions options, JsonConverter <TConverterReturn> converter)
            where TConverterReturn : T
        {
            JsonTypeInfo <T> info = new JsonTypeInfoInternal <T>(options);

            info.PropertyInfoForTypeInfo = JsonPropertyInfo <TConverterReturn> .CreateForSourceGenTypeInfo(typeof(T), runtimeTypeInfo : info, converter, options);

            return(info);
        }