use typed client from HttpClientFactory

This commit is contained in:
Collin M. Barrett 2019-06-28 19:04:33 -05:00
parent 711a4894b9
commit dda7de8ef1
4 changed files with 17 additions and 6 deletions

View file

@ -35,6 +35,7 @@
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
<PackageReference Include="Microsoft.DotNet.Analyzers.Compatibility" Version="0.2.12-alpha" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Http" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
<PackageReference Include="RestSharp" Version="106.6.9" />

View file

@ -0,0 +1,11 @@
using System.Net.Http;
public class AgentHttpClient
{
public AgentHttpClient(HttpClient client)
{
Client = client;
}
public HttpClient Client { get; }
}

View file

@ -25,9 +25,9 @@ public class Handler : AsyncRequestHandler<Command>
private readonly HttpClient _httpClient;
private readonly ILogger<Handler> _logger;
public Handler(HttpClient httpClient, ILogger<Handler> logger)
public Handler(AgentHttpClient httpClient, ILogger<Handler> logger)
{
_httpClient = httpClient;
_httpClient = httpClient.Client;
_logger = logger;
}

View file

@ -1,5 +1,4 @@
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Autofac;
using Autofac.Extensions.DependencyInjection;
@ -28,14 +27,14 @@ public static async Task Main()
private static void RegisterServices()
{
var serviceCollection = new ServiceCollection();
var containerBuilder = new ContainerBuilder();
// register Agent services
serviceCollection.AddLogging(b => b.AddConsole());
serviceCollection.AddMediatR(typeof(Program).Assembly);
containerBuilder.RegisterType<FilterListsApiClient>().AsImplementedInterfaces().SingleInstance();
containerBuilder.RegisterType<HttpClient>().SingleInstance();
serviceCollection.AddHttpClient<AgentHttpClient>();
serviceCollection.AddSingleton<IFilterListsApiClient, FilterListsApiClient>();
var containerBuilder = new ContainerBuilder();
containerBuilder.Populate(serviceCollection);
var container = containerBuilder.Build();
_serviceProvider = new AutofacServiceProvider(container);