コード例 #1
0
        internal override void GetPolicies(JsonSerializerOptions options)
        {
            Type propertyType = PropertyType;
            bool isNullable   = propertyType.IsGenericType && propertyType.GetGenericTypeDefinition() == typeof(Nullable <>);

            if (isNullable)
            {
                propertyType = Nullable.GetUnderlyingType(propertyType);
            }

            // For Enums, support both the type Enum plus strongly-typed Enums.
            if (propertyType.IsEnum || propertyType == typeof(Enum))
            {
                ValueConverter = s_enumConverter;
            }
            else
            {
                ValueConverter = (JsonValueConverter <TProperty>)DefaultConverters.GetDefaultPropertyValueConverter(propertyType, isNullable);
            }

            base.GetPolicies(options);
        }