HttpClientBuilderExtensions.AddAsKeyed Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Registra una pipeline denominata HttpClient e la pipeline HttpMessageHandler del gestore correlata come servizi con chiave con il nome del client come chiave e una durata fornita nel lifetime parametro .
Per impostazione predefinita, la durata è Scoped.
public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddAsKeyed(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, Microsoft.Extensions.DependencyInjection.ServiceLifetime lifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped);
static member AddAsKeyed : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * Microsoft.Extensions.DependencyInjection.ServiceLifetime -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddAsKeyed (builder As IHttpClientBuilder, Optional lifetime As ServiceLifetime = Microsoft.Extensions.DependencyInjection.ServiceLifetime.Scoped) As IHttpClientBuilder
Parametri
- builder
- IHttpClientBuilder
- lifetime
- ServiceLifetime
Durata dei servizi con chiave registrati.
Valori restituiti
Oggetto IHttpClientBuilder che può essere utilizzato per configurare il client.
Commenti
Un client denominato risolto dall'inserimento delle dipendenze come servizio con chiave si comporta in modo analogo a un client creato con CreateClient(String). Ciò significa che il client continuerà a riutilizzare la stessa HttpMessageHandler istanza per la durata di HandlerLifetimee continuerà a usare l'ambito di inserimento delle dipendenze separato del gestore anziché l'ambito da cui è stato risolto.
AVVISO: la registrazione del client come servizio con chiave Transient comporta l'acquisizione delle istanze e HttpMessageHandler tramite l'inserimento HttpClient delle dipendenze come entrambe implementano IDisposable. Ciò potrebbe causare perdite di memoria se il client viene risolto più volte all'interno di un Singleton servizio.
AVVISO: nel caso di (1) una registrazione con chiave SingletonHttpClient o (2) una chiave inserita TransientHttpClient in un Singleton servizio o (3) ambiti dell'applicazione a esecuzione prolungata, le HttpClient istanze verranno acquisite da un singleton o da un ambito a esecuzione prolungata, quindi non potranno partecipare alla rotazione del gestore, con conseguente perdita di modifiche DNS. Si tratta di un problema simile a quello con i client tipiti, registrati come Transient servizi.
Se viene chiamato due volte con per un generatore con lo stesso nome, la durata del servizio con chiave verrà aggiornata al valore usato ServiceLifetime più recente.
Se viene chiamato per un client tipizzato, solo il client e il gestore denominati correlati verranno registrati come chiave. Il client tipizzato continuerà a essere registrato come servizio temporaneo.
Se usato insieme ConfigureHttpClientDefaults(IServiceCollection, Action<IHttpClientBuilder>)a , viene usata la chiave AnyKey , pertanto qualsiasi istanza denominata HttpClient sarà risolvibile come servizio con chiave (a meno che non venga esplicitamente rifiutato esplicitamente dalla registrazione con chiave tramite RemoveAsKeyed(IHttpClientBuilder)).