diff --git a/src/ReC.Client/DependencyInjection.cs b/src/ReC.Client/DependencyInjection.cs
index d747007..a6c1523 100644
--- a/src/ReC.Client/DependencyInjection.cs
+++ b/src/ReC.Client/DependencyInjection.cs
@@ -1,6 +1,6 @@
using Microsoft.Extensions.DependencyInjection;
-#if NETFRAMEWORK
using System;
+#if NETFRAMEWORK
using System.Net.Http;
#endif
@@ -16,9 +16,15 @@ namespace ReC.Client
///
/// The to add the services to.
/// The base URI of the ReC API.
+ /// An optional action to configure . When omitted, defaults are used.
/// An that can be used to configure the client.
- public static IHttpClientBuilder AddRecClient(this IServiceCollection services, string apiUri)
+#if NETFRAMEWORK
+ public static IHttpClientBuilder AddRecClient(this IServiceCollection services, string apiUri, Action configureOptions = null)
+#else
+ public static IHttpClientBuilder AddRecClient(this IServiceCollection services, string apiUri, Action? configureOptions = null)
+#endif
{
+ AddRecClientOptions(services, configureOptions);
services.AddScoped();
return services.AddHttpClient(ReCClient.ClientName, client =>
{
@@ -31,11 +37,29 @@ namespace ReC.Client
///
/// The to add the services to.
/// An action to configure the .
+ /// An optional action to configure . When omitted, defaults are used.
/// An that can be used to configure the client.
- public static IHttpClientBuilder AddRecClient(this IServiceCollection services, Action configureClient)
+#if NETFRAMEWORK
+ public static IHttpClientBuilder AddRecClient(this IServiceCollection services, Action configureClient, Action configureOptions = null)
+#else
+ public static IHttpClientBuilder AddRecClient(this IServiceCollection services, Action configureClient, Action? configureOptions = null)
+#endif
{
+ AddRecClientOptions(services, configureOptions);
services.AddScoped();
return services.AddHttpClient(ReCClient.ClientName, configureClient);
}
+
+#if NETFRAMEWORK
+ private static void AddRecClientOptions(IServiceCollection services, Action configureOptions)
+#else
+ private static void AddRecClientOptions(IServiceCollection services, Action? configureOptions)
+#endif
+ {
+ // Ensure default options are always registered even when the caller does not configure anything.
+ var builder = services.AddOptions();
+ if (configureOptions != null)
+ builder.Configure(configureOptions);
+ }
}
}
\ No newline at end of file