/// <summary>
        /// Prepares the options with the converter.
        /// </summary>
        /// <param name="options">The options.</param>
        /// <returns>The options with the converter added.</returns>
        private JsonSerializerOptions PrepareOptions(JsonSerializerOptions options)
        {
            options = options ?? new JsonSerializerOptions
            {
                IgnoreNullValues         = true,
                IgnoreReadOnlyProperties = true,
            };

            var expressionConverter = new SerializableExpressionConverter();
            var anonTypeConverter   = new AnonTypeConverter();
            var rootConverter       = new SerializationRootConverter(expressionConverter, anonTypeConverter);

            options.Converters.Add(expressionConverter);
            options.Converters.Add(rootConverter);
            options.Converters.Add(new MemberBindingExprConverter());
            options.Converters.Add(anonTypeConverter);

            return(options);
        }