0

在为 MVC 控制器设置 LightInject 时,在调用container.EnableMvc();注入器设置时出现错误。

错误:

找不到方法:'Void LightInject.WebContainerExtensions.EnablePerWebRequestScope(LightInject.IServiceContainer)'

资源:

public static void Register() {
    var container = new ServiceContainer();
    container.ScopeManagerProvider = new PerLogicalCallContextScopeManagerProvider();
    WebContainerExtensions.EnablePerWebRequestScope(container);
    container.RegisterControllers();

    container.Register<ISomeClass, SomeClass>();

    container.EnableMvc();
}

附加信息:

  • 我正在通过 Visual Studio 在本地运行代码
  • 该项目是4.5
  • 我的操作系统是 Windows 10(框架 4.5)

过去,当我设置 LightInject 时,我手动设置了作用域生命周期,但用于一般设置和 MVC 特定示例的文档已经更改。我遇到了一个线程,提到这可能是不将 LightInject.Web 包括为 dep 的问题,但我可以看到它列为 LightInject.MVC 的 dep 并在项目的引用列表中。

在启用 MVC 之前,我是否可以采取任何其他步骤来手动配置生命周期或以其他方式验证此方法是否可用?

4

1 回答 1

0

这里的问题是我用 NuGet 安装了 LightInject.MVC。它列出了它的依赖项:

LightInject.Web (>= 1.0.0.4)
LightInject (>= 3.0.1.7)

在我用尽之后,这是 .Net 4.5 版本的问题以及异步可能出现的问题。我决定手动更新它们LightInject.WebLightInject最新版本。更新后它解决了这个问题。

我将把它添加为项目站点上列出的依赖项中的一个错误。

于 2016-09-21T17:38:32.963 回答