public ClientFactory( CreateHttpClient createHttpClient, ILoggerFactory?loggerFactory = null) { this.createHttpClient = createHttpClient; this.loggerFactory = loggerFactory ?? NullLoggerFactory.Instance; clients = new ConcurrentDictionary <string, Lazy <IClient> >(); createClientFunc = (name, baseUri) => new Lazy <IClient>(() => MintClient(name, baseUri), LazyThreadSafetyMode.ExecutionAndPublication); }
/// <summary> /// Clones the client With a change /// </summary> public static Client With(this Client client, CreateHttpClient createHttpClient) => client != null ? new Client( client.SerializationAdapter, client.BaseUrl, client.DefaultRequestHeaders, client.logger is ILogger <Client> logger ? logger : null, createHttpClient, client.sendHttpRequestMessage, client.getHttpRequestMessage, client.ThrowExceptionOnFailure, client.Name) : throw new ArgumentNullException(nameof(client));
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable. public CreateClientOptions(CreateHttpClient createHttpClient) => CreateHttpClient = createHttpClient;