/// <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()); }; })); }