【问题标题】:Simple Injector doesn't contain ASP.NET Core services when using Auto Cross-Wiring使用 Auto Cross-Wiring 时,Simple Injector 不包含 ASP.NET Core 服务
【发布时间】:2018-07-10 18:32:41
【问题描述】:

我正在将 Simple Injector 与 ASP.NET Core 2.1 一起使用,我已启用自动交叉连接,如下所示,但是当我执行 container.GetCurrentRegistrations() 时,我在 Simple Injector 容器中看不到任何可用的 ASP.NET Core 服务。

container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();

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

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

请提出可能是什么问题?

【问题讨论】:

    标签: c# inversion-of-control simple-injector


    【解决方案1】:

    ASP.NET Core 注册存在于内置配置系统中,并且仅在注册的应用程序组件依赖于 ASP.NET Core 组件的情况下才链接到 Simple Injector。自动交叉连接不会复制所有 ASP.NET Core 注册。

    所以要清楚,这里没有问题。如果您想了解 ASP.NET Core 中的内容,则必须深入了解 ServiceCollection。如果您想知道您在 Simple Injector 中注册了哪些应用程序组件,您可以使用 Simple Injector 的调试器视图进行操作,或者像现在一样调用GetCurrentRegistrations

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 2019-08-08
      • 2018-10-27
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多