使用自动交叉布线时,简单注入器不包含 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
。
我正在使用带有 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
。