public static void Serialize(object obj, JsonOptions options, StringBuilder resultStore)
        {
            options.ThrowIfNull(nameof(options));
            resultStore.ThrowIfNull(nameof(resultStore));
            SerializationSettings serializationSettings = new SerializationSettings(resultStore);

            serializationSettings.ApplyOptions(options);

            ToJson(obj, serializationSettings);
        }
        /// <summary>
        /// Serialize the object to a JSON-string.
        /// </summary>
        /// <param name="obj">Object to serialize.</param>
        /// <param name="options">Options to modify the string output behaviour.</param>
        /// <returns>A JSON representation of the given object.</returns>
        public static string Serialize(object obj, JsonOptions options = null)
        {
            SerializationSettings serializationSettings = new SerializationSettings();

            if (options != null)
            {
                serializationSettings.ApplyOptions(options);
            }

            ToJson(obj, serializationSettings);
            return(serializationSettings.resultStore.ToString());
        }
        /// <summary>
        /// Serialize the object to a JSON string and store the result directly in the result store.
        /// </summary>
        /// <param name="obj">Object to serialize.</param>
        /// <param name="resultStore">Write cache for the JSON result.</param>
        /// <param name="options">Options to modify the string output behaviour.</param>
        public static void Serialize(object obj, StringBuilder resultStore, JsonOptions options = null)
        {
            resultStore.ThrowIfNull(nameof(resultStore));

            SerializationSettings serializationSettings = new SerializationSettings(resultStore);

            if (options != null)
            {
                serializationSettings.ApplyOptions(options);
            }

            ToJson(obj, serializationSettings);
        }