Пример #1
0
        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;