2015-12-30 59 views
0

工作,我不能让autofac工作,我已经看过这个potentially duplicate问题,但它并不能帮助。获取Autofac与MVC6/ASP.NET5

我使用的是完整的.NET堆栈,DNX 4.5.1

我已经包括以下依赖性。

"dependencies": { 
    // matched latest autofac version with latest dependencyinjection version. 
    "Autofac": "4.0.0-beta8-157", 
    "Autofac.Framework.DependencyInjection": "4.0.0-beta8-157",  
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final" ... 

和下面的初始化代码。

// void? 
public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(); 

    var container = new ContainerBuilder(); 
    ... 
    // compilation error here! 
    container.Populate(services); 
} 

我收到此错误:

Error CS1503 Argument 2: cannot convert 
from'Microsoft.Extensions.DependencyInjection.IServiceCollection' to 
'System.Collections.Generic.IEnumerable<Microsoft.Framework.DependencyInjection.ServiceDescriptor>' 
MuWapp.DNX 4.5.1 C:\MuWapp\Startup.cs 54 Active 
+0

我认为所有的Nu​​Get包版本应该匹配(你的β-8和RC-1混合)。 –

+0

对于autofac没有rc-1,所以如果你正确的话,autofac还不支持rc1? 这意味着RC有突破性的变化,这是有点偏离! – Jim

回答

0

正如我在注释中提到过,你应该在你的project.json使用所有包的兼容版本。我在他们的页面上看到:https://github.com/autofac/Autofac/releases他们已经发布了RC1的版本,但是RC1没有Autofac.Framework.DependencyInjection,所以如果你需要这个包,你将无法运行它。

我想你应该在开发过程中使用内置的依赖注入,直到有RTM版本和所有第三方软件包将趋于稳定。

内建DI有注射类到控制器的功能,性能以及属性,所以除非你使用一些高级的场景中,autofac是必要的,你应该坚持asp.net 5 DI。

+0

感谢 - 显然我需要RC1依赖注入来在ASP.NET vNext DI中使用autofac。因此我必须等待。 – Jim