ITypedHttpClientFactory<TClient> Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Abstraction de fabrique pour un composant qui peut créer des instances de client typé avec une configuration personnalisée pour un nom logique donné.
generic <typename TClient>
public interface class ITypedHttpClientFactory
public interface ITypedHttpClientFactory<TClient>
type ITypedHttpClientFactory<'Client> = interface
Public Interface ITypedHttpClientFactory(Of TClient)
Paramètres de type
- TClient
Type de client typé à créer.
Exemples
Cet exemple montre le modèle de base pour la définition d’une classe cliente typée.
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();
}
}
Cet exemple montre comment consommer un client typé à partir d’un intergiciel ASP.NET Core.
// 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);
});
}
Cet exemple montre comment consommer un client typé à partir d’un contrôleur MVC ASP.NET Core.
// 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");
};
}
Remarques
Est ITypedHttpClientFactory<TClient> une infrastructure qui prend en charge la AddHttpClient<TClient>(IServiceCollection, String) fonctionnalité et AddTypedClient<TClient>(IHttpClientBuilder) . Ce type doit rarement être utilisé directement dans le code de l’application. Utilisez GetService(Type) à la place pour récupérer les clients typés.
Une valeur par défaut ITypedHttpClientFactory<TClient> peut être inscrite dans un IServiceCollection en appelant AddHttpClient(IServiceCollection). La valeur par défaut ITypedHttpClientFactory<TClient> est inscrite dans la collection de services en tant que service open-generic singleton.
La valeur par défaut ITypedHttpClientFactory<TClient> utilise l’activation de type pour créer des instances clientes typées. Les types de clients typés ne sont pas récupérés directement à partir du IServiceProvider. Pour plus d'informations, consultez CreateInstance(IServiceProvider, Type, Object[]).
Méthodes
CreateClient(HttpClient) |
Crée un client typé en fonction d’un HttpClient associé. |