Как следует из названия, я пытаюсь внедрить службу на страницу MainLayout
на стороне сервера Blazor. Сервис представляет собой ApplicationDbContext, который вводится следующим образом:
@inject ApplicationDbContext context
и регистрируемся вот так:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseNpgsql(
Configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient);
Однако я получаю System.ObjectDisposedException
исключение.
System.ObjectDisposedException: 'Невозможно получить доступ к удаленному объекту. Распространенной причиной этой ошибки является удаление контекста, который был разрешен в результате внедрения зависимостей, а затем попытка использовать тот же экземпляр контекста в другом месте вашего приложения. Это может произойти, если вы вызываете Dispose () в контексте или заключаете контекст в оператор using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей позаботиться об удалении экземпляров контекста. Имя объекта: 'ApplicationDbContext'. '
Первая загрузка страницы в порядке, но после этого возникает эта ошибка. Это также происходит с любыми компонентами, вложенными в страницу макета, но, похоже, не происходит на самих страницах.