为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();
}
其他信息:
过去当我设置LightInject时,我手动设置了范围生命周期,但是对于一般设置和MVC特定示例的文档已经发生了变化。我遇到一个线程,提到这可能是一个问题,不包括LightInject.Web作为dep,但我可以看到它列为LightInject.MVC的dep和项目中的引用列表。
在启用MVC之前,是否还有其他步骤可以手动配置生命周期或验证此方法是否可用?
答案 0 :(得分:0)
这里的问题是我用NuGet安装了LightInject.MVC。它将它的依赖关系列为:
LightInject.Web(&gt; = 1.0.0.4)
LightInject(&gt; = 3.0.1.7)
在我筋疲力尽之后,这是.Net 4.5版本的问题以及async的可能问题。我决定手动将LightInject.Web
和LightInject
更新为最新版本。更新后,它解决了这个问题。
我会将此添加为项目网站上列出的依赖项中的错误。