带有简单注入器的ASP.NET核心

时间:2016-05-22 00:22:34

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

我已经从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版本(而SimpleInjector对ASP.NET Core的支持是测试版),但我很好奇是否有人知道解决方法。谢谢!

1 个答案:

答案 0 :(得分:5)

使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