使用自动交叉布线时,简单注入器不包含 ASP.NET 核心服务

Simple Injector doesn't contain ASP.NET Core services when using Auto Cross-Wiring

我正在使用带有 ASP.NET 核心 2.1 的简​​单注入器 我已经启用了自动交叉连接,如下所示,但是当我这样做时 container.GetCurrentRegistrations() 我没有看到任何可用的 ASP.NET 核心服务在 Simple Injector 容器中。

container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

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

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

请指出可能是什么问题?

ASP.NET 核心注册存在于内置配置系统中,只有在已注册的应用程序组件依赖于 ASP.NET 核心组件时才会链接到简单注入器。自动交叉连接不会复制所有 ASP.NET 核心注册。

明确地说,这里没有问题。如果您想知道 ASP.NET Core 中存在什么,您将不得不深入研究 ServiceCollection。如果您想知道您在 Simple Injector 中注册了哪些应用程序组件,您可以使用 Simple Injector 的调试器视图来这样做,或者像您当前所做的那样调用 GetCurrentRegistrations