/// <summary>
        /// Adds xml support using supplied settings
        /// <para>Can create a deserializer for application/xml and text/xml</para>
        /// </summary>
        /// <param name="builder">The setup</param>
        /// <param name="settings">Supplied XmlSerializerSettings</param>
        /// <returns>ISolidHttpSetup</returns>
        public static ISolidHttpCoreBuilder AddXml(this ISolidHttpCoreBuilder builder, DataContractSerializerSettings settings)
        {
            var provider = new XmlSerializerSettingsProvider(settings);

            builder.Services.AddSingleton <IXmlSerializerSettingsProvider>(provider);
            builder.Services.AddSolidHttpDeserializer <XmlResponseDeserializerFactory>("application/xml", "text/xml");

            return(builder
                   .AddSolidHttpCoreOptions(options =>
            {
                options.Events.OnRequestCreated += (sender, args) =>
                {
                    var p = args.Services.GetRequiredService <IXmlSerializerSettingsProvider>();
                    args.Request.BaseRequest.Properties.Add("XmlSerializerSettings", p.GetXmlSerializerSettings());
                };
            }));
        }
        /// <summary>
        /// Adds json support using supplied settings
        /// <para>Can create a deserializer for application/json, text/json, and text/javascript</para>
        /// </summary>
        /// <param name="builder">The setup</param>
        /// <param name="settings">Supplied JsonSerializerSettings</param>
        /// <returns>ISolidHttpSetup</returns>
        public static ISolidHttpCoreBuilder AddJson(this ISolidHttpCoreBuilder builder, JsonSerializerSettings settings)
        {
            var provider = new JsonSerializerSettingsProvider(settings);

            builder.Services.AddSingleton <IJsonSerializerSettingsProvider>(provider);
            builder.Services.AddSolidHttpDeserializer <JsonResponseDeserializerFactory>("application/json", "text/json", "text/javascript");

            return(builder
                   .AddSolidHttpCoreOptions(options =>
            {
                options.Events.OnRequestCreated += (sender, args) =>
                {
                    var p = args.Services.GetRequiredService <IJsonSerializerSettingsProvider>();
                    args.Request.BaseRequest.Properties.Add("JsonSerializerSettings", p.GetJsonSerializerSettings());
                };
            }));
        }