Я пытаюсь переделать мой клиент API Azure для использования синглтона HttpClient
для ServiceClient<T>
, поскольку для этого предложено несколько источников (для повышения производительности, и также предлагается подход для HttpClient
, который используется за кулисамидля Microsoft.Rest.ServiceClient
"в общем")
Я использую версию Microsoft.Rest.ClientRuntime.2.3.12
Я вижу, что в Microsoft.Rest.ServiceClient есть конструктор для повторного использования HttpClient
protected ServiceClient(HttpClient httpClient, bool disposeHttpClient = true);
Это конструктор для моего клиента API для повторного использования HttpClient, но когда он вызывается, происходит сбой с System.MissingMethodException
: Void Microsoft.Rest.ServiceClient`1..ctor (System.Net.Http.HttpClient, Boolean)
public MyAPIclient(ServiceClientCredentials credentials, HttpClient client)
: base(client, disposeHttpClient: false)
{
this._baseUri = new Uri("https://...");
if (credentials == null)
{
throw new ArgumentNullException("credentials");
}
this.Credentials = credentials;
Credentials?.InitializeServiceClient(this);
}
Это то, как я называю API-клиент
using (var apiClient = new MyAPIclient(credentials, HttpClientSingleton.Client))
//I get Method not found 'Void Microsoft.Rest.ServiceClient`1..ctor(System.Net.Http.HttpClient, Boolean)'
{
//some api call
}
Так я создаю свой экземпляр http-клиентаsingleton
public static class HttpClientSingleton
{
public static readonly HttpClient Client = new HttpClient() { Timeout = TimeSpan.FromMinutes(30) };
}
Почему я получаю это исключение (я вижу, что ServiceClient
имеет ctor(httpClient, bool)
)?
Как исправить эту проблему?