Библиотека классов Blazor/Razor. Внедрение зависимости

Я запутался в том, как использовать библиотеку классов Razor, для которой требуются внедренные объекты. Я создал новый проект библиотеки классов бритвы. Нет файла program.cs и, следовательно, нет WebAssemblyHostBuilder для добавления сервисов? Как внедрить зависимости в компоненты?

Включение диаграмм Mermaid в Blazor WebAssembly и dotnet 7
Включение диаграмм Mermaid в Blazor WebAssembly и dotnet 7
Русалочьи диаграммы - это фантастика. MermaidJS предлагает все: диаграммы Ганнта, блок-схемы, круговые диаграммы и многое другое для вашего...
0
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Библиотека - это просто. Это не приложение. Вы загружаете объекты внедрения зависимостей в проект приложения. Вы можете написать классы расширения в своей библиотеке в качестве оболочки для загрузки всех необходимых объектов. builder.Services.AddServerSideBlazor() как раз такое расширение.

Вот пример метода расширения для прогноза погоды.

    public static class ServiceCollectionExtensions
    {
        public static void AddWeatherServices(this IServiceCollection services)
        {
            services.AddSingleton<WeatherForecastService>();
        }
    }

И использовать его при запуске приложения:

// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddWeatherServices();

Вы внедряете сервисы в свои компоненты как обычно. Если вы используете компонент в приложении, а необходимые службы не загружены, страница, на которой используется компонент, выдаст ошибку.

Другие вопросы по теме