Task» не содержит определения для GetFromJsonAsync.C#

Место общения программистов C#
Anonymous
Task» не содержит определения для GetFromJsonAsync.

Сообщение Anonymous »

Я создал библиотеку классов C# для своего проекта и класс под названием GetHttpClient.cs
когда я использую функцию GetPublicHttpClient(), ошибок нет, но при использовании GetPrivateHttpClient()
отображается следующая ошибка :(Task' не содержит определения для 'GetFromJsonAsync', а лучшая перегрузка метода расширения 'HttpClientJsonExtensions.GetFromJsonAsync(HttpClient, string?, CancellationToken)' требует приемника типа 'System.Net.Http.HttpClient ')
Я установил все необходимые пакеты, такие как Microsoft.Extensions.Http" Version="8.0.0"
мой код:< /p>

Код: Выделить всё

using BaseLibrary.DTOs;

namespace ClientLibrary.Helpers
{
public class GetHttpClient(IHttpClientFactory httpClientFactory, LocalStorageService localStorageService)
{
private const string HeaderKey = "Authorization";

public async Task GetPrivateHttpClient()
{
var client = httpClientFactory.CreateClient("SystemApiClient");
var stringToken = await localStorageService.GetToken();
if (string.IsNullOrEmpty(stringToken)) return client;

var deserializeToken = Serializations.DeserializeJsonString(stringToken);
if (deserializeToken == null) return client;

client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", deserializeToken.Token);
return client;
}

public HttpClient GetPublicHttpClient()
{
var client = httpClientFactory.CreateClient("SystemApiClient");
client.DefaultRequestHeaders.Remove(HeaderKey);
return client;
}

}

}
и код UserAccountService.cs

Код: Выделить всё

using System.Net.Http.Json;
using BaseLibrary.DTOs;
using BaseLibrary.Responses;
using ClientLibrary.Helpers;
using ClientLibrary.Services.Contracts;

namespace ClientLibrary.Services.Implementations
{
public class UserAccountService(GetHttpClient getHttpClient) : IUserAccountService
{
public const string AuthUrl = "api/authentication";
public async Task CreateAsync(Register user)
{
var httpClient = getHttpClient.GetPublicHttpClient();
var result = await httpClient.PostAsJsonAsync($"{AuthUrl}/register", user);
if (!result.IsSuccessStatusCode) return new GeneralResponse(false, "Error occurred");

return await result.Content.ReadFromJsonAsync()!;
}

public async Task SignInAsync(Login user)
{
var httpClient = getHttpClient.GetPublicHttpClient();
var result = await httpClient.PostAsJsonAsync($"{AuthUrl}/login", user);
if (!result.IsSuccessStatusCode) return new LoginResponse(false, "Error occurred");

return await result.Content.ReadFromJsonAsync()!;
}

public Task RefreshTokenAsync(RefreshToken token)
{
throw new NotImplementedException();
}

public async Task GetWeatherForecast()
{
var httpClient = getHttpClient.GetPrivateHttpClient();
var result = await httpClient.GetFromJsonAsync("api/weatherforecast");

return result!;
}
}

}

я прочитал несколько документов, но не смог решить проблему

Подробнее здесь: https://stackoverflow.com/questions/784 ... mjsonasync

Вернуться в «C#»