Существует ли максимально допустимое количество вызовов AddTransient. net Внедрение зависимостей? - PullRequest
0 голосов
/ 19 марта 2020

Я добавляю некоторые модификации в существующее. Net -Core & Entity Framework-использование веб-приложения. Используются инъекции зависимостей, и к настоящему времени у нас есть 22 строки вызова метода AddTransient () -. К сожалению, я «избранный», который добавляет 23-й вызов, и веб-приложение демонстрирует странное поведение. Я отладил настолько глубоко, насколько это возможно, и застрял, когда я вижу сообщение: Ein Ausnahmefehler des Typs "System.StackOverflowException" ist in Microsoft.Extensions.DependencyInjection.dll aufgetreten.

В переводе на английский sh что-то вроде: An Exception of type "System.StackoverflowException" was raised in Microsoft.Extensions.DependencyInjection.dll

Я почти уверен, что конструктор 23-й класс построен так же, как и 22-й ранее. И если я отключу другой addTransient-Call, чтобы снова было 22 addTransient-звонка, веб-приложение работает как должно. Вот почему я предполагаю некоторое ограничение.

Вы сталкивались с таким же поведением? Или есть некоторые ресурсы, чтобы прочитать об ограничениях, касающихся Microsoft. Net Внедрение зависимостей и что можно сделать в этом случае?

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Из-за некоторых правовых ограничений мы не можем опубликовать важную часть источника, и у нас нет времени переписать ее, чтобы сделать ее доступной c.

Но мы пробовали разные вещи и выяснил, что изменение Io C -Container с Microsoft. net DI на Autofa c оказало положительное влияние, и ошибка исчезла.

Я знаю, это не будет удовлетворительным ответьте для всех вас, но не стесняйтесь спрашивать, хотите ли вы узнать некоторые подробности c. Но, возможно, это подтверждает ваши мысли о том, чтобы дать Autofa c (или любому другому Io C -Container) шанс.

0 голосов
/ 19 марта 2020

Скорее всего, у вас круговая зависимость. Изучите новый класс, который вы пытаетесь зарегистрировать, и проверьте его зависимости. А еще лучше, временно удалите все его зависимости и попробуйте снова зарегистрироваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...