В идеале, если вы используете внедрение зависимостей в том виде, как оно было спроектировано, вы бы вообще не создавали там новый экземпляр LicenseService, а вместо этого внедряли зависимость , как следует из названия.
Во время запуска у вас может быть следующая регистрация службы (или что-то подобное).
services.AddScoped<LicenseService>();
В конструкторе страницы Razor контейнер службы теперь может автоматически разрешать эту зависимость для вас, заботясь о все его зависимостей тоже, при условии, что эти зависимости также были зарегистрированы.
public class YourPageModel : PageModel
{
private readonly LicenseService _licenseService;
public YourPageModel (LicenseService licenseService)
{
_licenseService = licenseService;
}
public async Task<List<Licenses>> GetLicenseData()
{
var licenseData = await _licenseService.GetLicensesAsync();
return licenseData;
}
}
Обновление :
Служба может быть внедрена в ваш Компонент Blazor с DI использует этот синтаксис вверху:
@inject LicenseService licenseService
И затем в вашем методе упоминается как licenseService
Смотрите ссылку для примера:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/build-your-first-blazor-app?view=aspnetcore-3.1#dependency -инъекция