Simple Injector не содержит служб ASP.NET Core при использовании автоматического перекрестного подключения - PullRequest
0 голосов
/ 05 июля 2018

Я использую Simple Injector с ASP.NET Core 2.1. Я включил автоматическую перекрестную проводку, как показано ниже, но когда я делаю container.GetCurrentRegistrations(), я не вижу никаких служб ASP.NET Core, доступных в контейнере Simple Injector.

container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

services.AddHttpContextAccessor>();
services.AddSingleton<IControllerActivator>(
    new SimpleInjectorControllerActivator(container));

services.EnableSimpleInjectorCrossWiring(container);
services.UseSimpleInjectorAspNetRequestScoping(container);

Пожалуйста, предложите, в чем может быть проблема?

1 Ответ

0 голосов
/ 05 июля 2018

ASP.NET Core регистрируется во встроенной системе настройки и связывается с Simple Injector только в том случае, если зарегистрированный компонент приложения зависит от компонента ASP.NET Core. Функция Auto Cross-Wiring не копирует все регистрации в ASP.NET Core.

Итак, чтобы быть ясным, здесь нет проблем. Если вы хотите узнать, что находится внутри ASP.NET Core, вам придется углубиться в ServiceCollection. Если вы хотите узнать, какие компоненты приложения вы зарегистрировали в Simple Injector, вы можете использовать для этого представление отладчика Simple Injector или вызвать GetCurrentRegistrations, как вы это делаете в настоящее время.

...