#api #asp.net-core #dependency-injection #lifecycle
#API #asp.net-core #внедрение зависимости #жизненный цикл
Вопрос:
Я хочу получить доступ к объекту dbcontext DI после завершения запроса, например, выполнить какую-либо фоновую задачу при выполнении запроса fet и сделать его коротким.
пример кода:
await bunusInfoService.CheckBonus(user.Id, _appSettings.GregSysRegisterIP);
UserDto uss = Mapper.Map<UserDto>(user);
return uss;
но вызов bunusInfoService.Проверка бонуса без ожидания.
в нем говорится:
Не удается получить доступ к удаленному объекту. Распространенной причиной этой ошибки является удаление контекста, который был разрешен при внедрении зависимостей, а затем последующая попытка использовать тот же экземпляр контекста в другом месте вашего приложения. Это может произойти, если вы вызываете Dispose() в контексте или оборачиваете контекст в инструкции using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей позаботиться об удалении экземпляров контекста.
Комментарии:
1. Если вы можете поделиться соответствующим кодом, мы поможем лучше устранить проблему.
2. вот так: ожидайте bunusInfoService. CheckBonus (пользователь. Идентификатор, _appSettings. GregSysRegisterIP); UserDTO uss = Mapper.Map<Пользовательское имя>(user); uss. Токен = GenerateJWTToken(user.Id.toString(), «Пользователь»); uss.refreshToken = currentAuth. refreshToken; uss.RefreshTokenExpDate = currentAuth. RefreshTokenExpDate; uss.isSuccess = true; возвращает uss; } но вызов bunusInfoService. Проверка бонуса без ожидания