2015-12-30 32 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