Срок службы службы addScoped в многопоточном приложении ASP. NET Core. - PullRequest
0 голосов
/ 31 января 2020

Я знаю, что AddSingleton() создает один экземпляр службы при первом запросе и повторно использует этот же экземпляр во всех местах, где требуется эта служба.

Если мой ASP. NET Базовое приложение является многопоточным, означает ли это, что все HTTP-запросы от всех пользователей будут совместно использовать один и тот же экземпляр объекта, созданный внедрение зависимостей (DI)?

Если это так, это не хороший способ, если приложение обрабатывает данные для хранения. Есть ли лучшие практики?

Ответы [ 2 ]

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

Как указано в документации Microsoft, Срок службы , это зависит от вашего конкретного случая c.

Предположительно, если у вас есть услуга, A, и вы хотите создавать новый экземпляр для каждого отдельного запроса, вы можете использовать AddScoped () вместо AddSingleton (). Служба с ограниченным сроком службы будет создана для каждого запроса клиента.

0 голосов
/ 13 февраля 2020

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

...