Quantcast
Channel: Active questions tagged blazor - Stack Overflow
Viewing all articles
Browse latest Browse all 4839

Blazor WebAssembly returns "no registered service" even though service is registered

$
0
0

I have a Blazor app with WebAssembly render mode. In my Client project, I have this page:

@page "/demo"@page "/{lang}/demo"@inject IDemoService DemoService@inject ICsvImportService CsvImportService@inject ILanguageService LanguageService...@code {    [Parameter]    public required string Lang { get; set; }    protected override void OnParametersSet()    {        text =  LanguageService.GetLocalizedStrings("AppName.Client.Localization.Strings.Demo.csv", Lang ?? Constants.SupportedLanguages[0]);    }...}

The services are registered in Client's Program.cs like this:

string apiUrl = "https://localhost:7254"; // TODO move to appsettings.jsonstring apiVersion = "/api/v1";builder.Services.AddRefitClient<IDemoService>()    .ConfigureHttpClient(c => c.BaseAddress = new Uri($"{apiUrl}{apiVersion}"));builder.Services.AddScoped<IEmbeddedCsvService, EmbeddedCsvService>();builder.Services.AddScoped<ILanguageService, LanguageService>();builder.Services.AddScoped<ICsvImportService, CsvImportService>();

Usually, everything works fine. But sometimes, for example when I manually change the language code in the URL, the browser shows me this error:

InvalidOperationException: Cannot provide a value for property 'DemoService' on type 'AppName.Client.Features.Calculation.Demo.Page.Demo'. There is no registered service of type 'AppName.Client.Features.Calculation.Demo.Service.IDemoService'.

Suddenly, the service is not registered, but when the page is loaded and I use it to call the API, everything works. Should I change the way I deal with language versions?

EDIT: It happens even with other services unrelated to Refit and even if I keep the language version unchanged.


Viewing all articles
Browse latest Browse all 4839

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>