如何将 Blazored.LocalStorage (v2.1.6) 注入 blazor webassembly 服务 (3.2.0)?
这是我们尝试过的。尝试等待 LocalStorage.GetItemAsync 时出现空错误。
App.razor
@using Blazored.LocalStorage
程序.cs
builder.Services.AddBlazoredLocalStorage();
builder.Services.AddSingleton<Services.UserService>();
服务/用户服务.cs
namespace Test.Client.Services
{
public class UserService
{
[Inject]
private ILocalStorageService LocalStorage;
private readonly HttpClient Http;
public UserService(HttpClient _http)
{
Http = _http;
}
public async void LoginCallback()
{
string tkn = await LocalStorage.GetItemAsync<string>("tkn"); //Object null error here
}
}
}
编辑解决方案:首先,重新启动 Visual Studio,因为它正在持有某些东西,并且在我这样做之前不会对任何东西起作用。然后正如标记的答案所示,DI就像这样:
private ILocalStorageService LocalStorage;
private readonly HttpClient Http;
public UserService(HttpClient _http, ILocalStorageService _localStorage)
{
Http = _http;
LocalStorage = _localStorage;
}