我正在将Simple Injector与ASP.NET Core 2.1配合使用,如下所示启用了自动交叉布线,但是当我进行container.GetCurrentRegistrations()
时,Simple Injector容器中没有任何可用的ASP.NET Core服务。 / p>
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();
services.AddHttpContextAccessor>();
services.AddSingleton<IControllerActivator>(
new SimpleInjectorControllerActivator(container));
services.EnableSimpleInjectorCrossWiring(container);
services.UseSimpleInjectorAspNetRequestScoping(container);
请提出可能是什么问题?
答案 0 :(得分:1)
ASP.NET Core注册存在于内置配置系统中,并且仅在注册的应用程序组件依赖于ASP.NET Core组件的情况下才链接到Simple Injector。自动交叉布线不会复制所有ASP.NET Core注册。
很明显,这里没有问题。如果您想知道ASP.NET Core内部包含什么内容,则必须深入研究ServiceCollection。如果您想知道在Simple Injector中注册了哪些应用程序组件,则可以使用Simple Injector的调试器视图来执行此操作,或者像当前一样调用GetCurrentRegistrations
。