public static IServiceCollection AddHealthChecks(this IServiceCollection services, Action <IHealthCheckBuilder> configureHealthCheckBuilder, IAsyncPolicy <HttpResponseMessage>[] policies) { if (configureHealthCheckBuilder == null) { throw new ArgumentNullException(nameof(configureHealthCheckBuilder)); } if (policies == null) { throw new ArgumentNullException(nameof(policies)); } var httpClient = services .AddHttpClient <IHealthCheckHttpClient, HealthCheckHttpClient>() .AddPolicyHandlers(policies); services.AddTransient <IHealthCheckService, HealthCheckService>(); var builder = new HealthCheckBuilder(); configureHealthCheckBuilder(builder); foreach (var factory in builder.GetAll()) { services.AddTransient(sp => factory(sp)); } return(services); }