让autoface与mvc6 beta5一起工作
本文关键字:一起 工作 beta5 mvc6 autoface | 更新日期: 2023-09-27 17:51:11
我正试图让autoface与我正在工作的mvc6应用程序一起工作。我发现了这篇博客文章,但它似乎有点过时了。它看起来像是在使用β 3位
我正在使用这个clr版本
1.0.0-beta5-11911
我的项目有这两个参考
"Autofac": "4.0.0-alpha2",
"Autofac.Dnx": "4.0.0-alpha2",
文章中讨论了如何修改startup.cs
// Create the Autofac container builder.
var builder = new Autofac.ContainerBuilder();
// Add any Autofac modules or registrations.
builder.RegisterModule(new AutofacModule());
// Populate the services.
builder.Populate(services);
// Build the container.
var container = builder.Build();
return container.Resolve<IServiceProvider>();
上面的代码抱怨builder.Populate(services);
给我一个错误
类型'IServiceDescriptor'在未引用的程序集中定义。你必须添加一个对程序集"Microsoft.Framework.DependencyInjection"的引用。IServiceDescriptor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
从我的研究,它看起来像在beta4 DependencyInjection。删除IserviceDescriptor。
还有人能让autoface用最新的测试版工作吗?
对于那些想知道如何让AutoFac在配置允许的情况下运行的人
下面是project.json的代码片段
"dependencies": {
"Autofac": "4.0.0-beta6-110",
"Autofac.Framework.DependencyInjection": "4.0.0-beta6-110",
"Microsoft.AspNet.Mvc": "6.0.0-beta6",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta6"
},
然后startup。cs
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//create Autofac container build
var builder = new ContainerBuilder();
//populate the container with services here..
builder.RegisterType<DemoService>().As<IProjectDemo>();
builder.Populate(services);
//build container
var container = builder.Build();
//return service provider
return container.ResolveOptional<IServiceProvider>();
}
正如@peco提到的,确保你有
using Autofac.Framework.DependencyInjection
这让我开始使用AutoFac:)希望这对你有帮助!