/// <summary>
        ///     Initializes a new instance of the <see cref="T:JsonSerializerSettingsWrapper" /> class.
        /// </summary>
        public JsonSerializerSettingsWrapper(JsonSerializerSettingsWrapperParameters parameters)
        {
            parameters = parameters ?? new JsonSerializerSettingsWrapperParameters();

            NullValueHandling = NullValueHandling.Ignore;
            Formatting = parameters.Indented ? Formatting.Indented : Formatting.None;
            ContractResolver = new JsonContractResolverWrapper
            {
                OnCreateContract = contract =>
                {
                    parameters.OnCreateContract?.Invoke(contract);
                    if(parameters.RegisterCustomContracts)
                    {
                        if(contract.UnderlyingType.IsEnum)
                        {
                            contract.Converter = new JsonEnumConverter();
                        }
                    }
                },
                OnCreateProperty = property => parameters.OnCreateProperty?.Invoke(property)
            };
        }
示例#2
0
 /// <summary>
 ///     Serializes the <paramref name="obj" /> to a json string using the given <paramref name="settings" />.
 /// </summary>
 public static string ToJson(this object obj, JsonSerializerSettingsWrapperParameters settings = null)
     => JsonConvert.SerializeObject(obj, new JsonSerializerSettingsWrapper(settings));