【问题标题】:ASP.NET Core with Simple Injector带有简单注入器的 ASP.NET Core
【发布时间】:2017-09-11 21:17:57
【问题描述】:

我已经从 VS 模板创建了一个 ASP.NET Core Web API 应用程序(我已经用最新的 ASP.NET Core RC2 更新了 VS)。但是,在尝试将我的应用程序设置为使用 SimpleInjector 作为 IoC 容器时,我遇到了问题。

我正在使用here 提供的说明。当我对在该链接上找到的说明进行镜像时,我在 ConfigureServices 方法中收到一个错误,指出 IServiceCollection 没有 AddInstance 的定义。它还说找不到 IControllerActivator。

public void ConfigureServices(IServiceCollection services)
    {
        // Add framework services.
        services.AddMvc();

        services.AddInstance<IControllerActivator>(
        new SimpleInjectorControllerActivator(container));
        services.AddInstance<IViewComponentInvokerFactory>(
            new SimpleInjectorViewComponentInvokerFactory(container));
    }

我意识到在使用 ASP.NET 的最新 RC2 版本时可能会出现问题(并且对 ASP.NET Core 的 SimpleInjector 支持是测试版),但我很好奇是否有人知道解决方法。谢谢!

【问题讨论】:

  • 你添加了导入吗?
  • 我不确定你的意思。我有 SimpleInjector 所需的 using 语句。也就是说,IServiceCollection 看起来像是来自 Windows 依赖注入程序集。

标签: c# asp.net asp.net-web-api simple-injector


【解决方案1】:

使 Simple Injector 的所有必需部件与 RC2 兼容是一项艰巨的任务。微软改变了一切(包括 API、MVC 和工具)。所以我们花了几天时间来解决这个问题并创建一个兼容的版本。

但我很高兴地宣布,Simple Injector v3.1.5 与 .NET Core 1.0.0-rc2 兼容,而 SimpleInjector.Integration.AspNet 包的 v3.1.5-rc2-02 版本与 RC2 兼容出色地。我们也更新了the documentation

【讨论】:

  • 嗨史蒂文。不幸的是,我仍然遇到问题。我从头开始创建一个核心 Web API,运行文档中的命令来安装 SimpleInjector “Install-Package SimpleInjector.Integration.AspNet -Pre”,但是当我尝试按照文档设置我的应用程序时仍然出现错误.我收到错误 IControllerActivator 和 IViewComponentActivator 找不到。
  • 我注意到using SimpleInjector.Extensions.ExecutionContextScoping; 没有被使用。
  • @Andrew:你使用了哪个版本的集成包?可能是 Nuget 缓存问题。
  • 嘿@Steven。 Nuget 说我有版本 3.1.5-rc2-02
  • @Andrew 听起来不错。您可以在 Github 上创建一个问题并附加一个示例项目作为 zip 来演示该问题吗?我会尽快看看它
猜你喜欢
  • 1970-01-01
  • 2018-10-08
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多