Beispiel #1
0
        /// <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 builder</param>
        /// <param name="settings">Supplied JsonSerializerSettings</param>
        /// <returns>ISolidHttpCoreBuilder</returns>
        public static ISolidHttpCoreBuilder AddJson(this ISolidHttpCoreBuilder builder, JsonSerializerSettings settings)
        {
            var provider = new JsonSerializerSettingsProvider(settings);

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

            return(builder
                   .OnRequestCreated((services, request) =>
            {
                var p = services.GetRequiredService <IJsonSerializerSettingsProvider>();
                request.BaseRequest.Properties.Add("JsonSerializerSettings", p.GetJsonSerializerSettings());
            }));
        }
Beispiel #2
0
 /// <summary>
 /// Add a global handler to be run when every Solid.Http request object is created.
 /// </summary>
 /// <param name="builder">The extended ISolidHttpBuilder</param>
 /// <param name="action">The handler to be run</param>
 /// <returns>The builder</returns>
 public static ISolidHttpCoreBuilder OnRequestCreated(this ISolidHttpCoreBuilder builder, Action <ISolidHttpRequest> action)
 => builder.OnRequestCreated((_, c) => action(c));