Как долго существует объект внедрения зависимостей (Scoped & Transient) на сервере - PullRequest
0 голосов
/ 17 февраля 2020

Я хочу узнать некоторые подробности о том, как долго объект службы сохраняет значение, например, существует ли ограничение по времени для объектов службы, особенно для Scoped и Transient.

Область: Сохраняет значение для конкретного запроса (представьте вкладку браузера).

Переходный процесс: Сохраняет значение для конкретного Component.

Что если я останусь надолго (не делая никаких действий) в определенном Component (Page), где я использовал служебный объект Scoped и Transient.

Будет ли значение сохранено навсегда? или он будет утилизироваться автоматически через некоторое время?

1 Ответ

1 голос
/ 17 февраля 2020

Что делать, если я остаюсь долго (не предпринимая никаких действий) в определенном Компоненте (Страница), где я использовал служебный объект Scoped и Transient.

Запрос длится с того момента, как вы нажимайте ввод в URL (или ссылку или кнопку), пока страница не будет загружена. После этого запрос заканчивается.

HTTP не имеет состояния, у него нет постоянного соединения или состояния. Если загрузка страницы занимает 50 мс, после этого запрос заканчивается и службы удаляются. Когда вы щелкаете ссылку, новый запрос начинается с создания новых зависимостей.

Каждый запрос всегда будет иметь новый экземпляр, поэтому не храните данные в службах, которые необходимы для следующего запроса. Если вам нужен материал только для следующего запроса, используйте TempData , и если он должен сохраняться дольше, чем до следующего обращения к нему, используйте Sessions

Will ценность будет сохранена навсегда? или он будет утилизироваться автоматически через некоторое время?

После завершения запроса он больше не сохраняется для доступа к сервисам. Удаление освобождает все неуправляемые ресурсы (соединение, дескрипторы файлов, неуправляемую память).

Сам объект остается некоторое (неуказанное) время в памяти, пока сборщик мусора не активируется и не освобождает объект и память. Это предполагает, что вы не удерживаете какую-либо ссылку на службу после завершения запроса, поскольку сборщик мусора может собирать только объекты, не имеющие ссылок.

Вот как работают управляемые среды выполнения. Сборка мусора не является детерминированной c, поэтому она может происходить в любое время, когда выполняются условия для ее запуска.

...