当为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 (framework 4.5)
在过去,当我设置LightInject时,我手动设置了作用域生存期,但文档,对于一般设置和MVC特定的例子,已经改变了。我遇到一个线程,提到这可能是一个问题,不包括LightInject。Web作为一个深度,但我可以看到它被列为LightInject的一个深度。
是否有任何其他步骤,我可以采取手动配置生命周期或以其他方式验证这个方法是可用的启用MVC之前?
这里的问题是我安装了LightInject。使用NuGet的MVC。它列出了它的依赖项:
LightInject。Web (>= 1.0.0.4)
LightInject (>= 3.0.1.7)
在我用尽了。net 4.5版本和async可能存在的问题之后。我决定手动更新LightInject.Web
和LightInject
到他们的最新版本。更新后问题解决了。
我将把它作为一个bug添加到项目站点上列出的依赖项中。