проблема внедрения основных зависимостей asp.net - AddScoped не создает новый экземпляр - PullRequest
0 голосов
/ 17 мая 2018

Я использовал инъекцию зависимостей ядра asp.net и видел непредвиденное поведение, по крайней мере для меня.Я добавляю новую услугу в контейнер следующим образом:

services.AddScoped<IMyClass>(provider =>
{
   return new MyClass(
      "anyValue"
   });

После этого я внедряю класс в другой класс, чтобы использовать его:

public class AnotherClass(IMyClass xxx){

}

Дело в том, что тампара конфигураций, которые сделаны на конструкторе MyClass на основе информации запросаПроблема в том, что я видел конструктор MyClass, выполняемый только при запуске приложения.После этого класс, похоже, использует один и тот же экземпляр для всех вызовов.Поскольку я использую сервис Scoped, я ожидаю иметь новый экземпляр для каждого запроса, я не прав?

Спасибо.

1 Ответ

0 голосов
/ 17 мая 2018

Хорошо. Проблема заключалась в том, что класс, который получал инъекцию, был добавлен в контейнер как синглтон. Я просто изменил его на Scoped, и все работало хорошо.

Спасибо!

...