ITypedHttpClientFactory<TClient> Schnittstelle

Definition

Eine Abstraktion der Zuordnungsinstanz für eine Komponente, die typisierte Clientinstanzen mit benutzerdefinierter Konfiguration für einen angegebenen logischen Namen erstellen kann.A factory abstraction for a component that can create typed client instances with custom configuration for a given logical name.

generic <typename TClient>
public interface class ITypedHttpClientFactory
public interface ITypedHttpClientFactory<TClient>
type ITypedHttpClientFactory<'Client> = interface
Public Interface ITypedHttpClientFactory(Of TClient)

Typparameter

TClient

Der Typ des zu erstellenden typisierten Clients.The type of typed client to create.

Beispiele

Dieses Beispiel zeigt das grundlegende Muster zum Definieren einer typisierten Client Klasse.This sample shows the basic pattern for defining a typed client class.


             class ExampleClient
             {
                 private readonly HttpClient _httpClient;
                 private readonly ILogger _logger;
            
                 // typed clients can use constructor injection to access additional services
                 public ExampleClient(HttpClient httpClient, ILogger<ExampleClient> logger)
                 {
                     _httpClient = httpClient;
                     _logger = logger;     
                 }
            
                 // typed clients can expose the HttpClient for application code to call directly
                 public HttpClient HttpClient => _httpClient;
            
                 // typed clients can also define methods that abstract usage of the HttpClient
                 public async Task SendHelloRequest()
                 {
                     var response = await _httpClient.GetAsync("/helloworld");
                     response.EnsureSuccessStatusCode();
                 }
             }

Dieses Beispiel zeigt, wie ein typisierter Client aus einer ASP.net Core Middleware genutzt wird.This sample shows how to consume a typed client from an ASP.NET Core middleware.


             // in Startup.cs
             public void Configure(IApplicationBuilder app, ExampleClient exampleClient)
             {
                 app.Run(async (context) =>
                 {
                     var response = await _exampleClient.GetAsync("/helloworld");
                     await context.Response.WriteAsync("Remote server said: ");
                     await response.Content.CopyToAsync(context.Response.Body);
                 });
             }

In diesem Beispiel wird gezeigt, wie ein typisierter Client von einem ASP.net Core MVC-Controller verwendet wird.This sample shows how to consume a typed client from an ASP.NET Core MVC Controller.


             // in Controllers/HomeController.cs
             public class HomeController : ControllerBase(IApplicationBuilder app, ExampleClient exampleClient)
             {
                 private readonly ExampleClient _exampleClient;
            
                 public HomeController(ExampleClient exampleClient)
                 {
                     _exampleClient = exampleClient;
                 }
            
                 public async Task<IActionResult> Index()
                 {
                     var response = await _exampleClient.GetAsync("/helloworld");
                     var text = await response.Content.ReadAsStringAsync();
                     return Content("Remote server said: " + text, "text/plain");
                 };
             }

Hinweise

Der ITypedHttpClientFactory<TClient> ist eine Infrastruktur, die die AddHttpClient<TClient>(IServiceCollection, String)-und AddTypedClient<TClient>(IHttpClientBuilder)-Funktionalität unterstützt.The ITypedHttpClientFactory<TClient> is infrastructure that supports the AddHttpClient<TClient>(IServiceCollection, String) and AddTypedClient<TClient>(IHttpClientBuilder) functionality. Dieser Typ sollte nur selten direkt im Anwendungscode verwendet werden. verwenden Sie stattdessen GetService(Type), um typisierte Clients abzurufen.This type should rarely be used directly in application code, use GetService(Type) instead to retrieve typed clients.

Ein Standard ITypedHttpClientFactory<TClient> kann in einer IServiceCollection durch Aufrufen von AddHttpClient(IServiceCollection)registriert werden.A default ITypedHttpClientFactory<TClient> can be registered in an IServiceCollection by calling AddHttpClient(IServiceCollection). Der Standard ITypedHttpClientFactory<TClient> wird in der Dienst Sammlung als ein Open-Generic-Singleton-Dienst registriert.The default ITypedHttpClientFactory<TClient> will be registered in the service collection as a singleton open-generic service.

Der Standard ITypedHttpClientFactory<TClient> verwendet die typaktivierung zum Erstellen von typisierten Client Instanzen.The default ITypedHttpClientFactory<TClient> uses type activation to create typed client instances. Typisierte Client Typen werden nicht direkt aus der IServiceProviderabgerufen.Typed client types are not retrieved directly from the IServiceProvider. Ausführliche Informationen finden Sie unter CreateInstance(IServiceProvider, Type, Object[]).See CreateInstance(IServiceProvider, Type, Object[]) for details.

Methoden

CreateClient(HttpClient)

Erstellt einen typisierten Client, wenn eine zugeordnete HttpClient-Klasse vorliegt.Creates a typed client given an associated HttpClient.

Gilt für: