将LightInject与MVC5和.Net 4.5一起使用时找不到方法

时间:2016-09-21 13:39:07

标签: c# .net asp.net-mvc light-inject

为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之前,是否还有其他步骤可以手动配置生命周期或验证此方法是否可用?

1 个答案:

答案 0 :(得分:0)

这里的问题是我用NuGet安装了LightInject.MVC。它将它的依赖关系列为:

  

LightInject.Web(&gt; = 1.0.0.4)
  LightInject(&gt; = 3.0.1.7)

在我筋疲力尽之后,这是.Net 4.5版本的问题以及async的可能问题。我决定手动将LightInject.WebLightInject更新为最新版本。更新后,它解决了这个问题。

我会将此添加为项目网站上列出的依赖项中的错误。