How to integrate Autofac with Asp.net core 2.2
我已遵循以下指南:https://autofac.readthedocs.io/en/latest/integration/aspnetcore.html
在最后一步,它显示:
1 2 | // Create the IServiceProvider based on the container. return new AutofacServiceProvider(this.ApplicationContainer); |
但是,最新版本的Asp Net core 2.2中,函数ConfigureServices(IServiceCollection services)返回void
1 | public void ConfigureServices(IServiceCollection services) |
如何根据最新更改重构代码?
在您的解决方案中,您在ConfigureServices方法中使用了
1 | public void ConfigureServices(IServiceCollection services) |
实际上,您可以设置并返回
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Startup { public IContainer Container { get; private set; } // ... public IServiceProvider ConfigureServices(IServiceCollection services) { // create new container builder var containerBuilder = new ContainerBuilder(); // populate .NET Core services containerBuilder.Populate(services); // register your autofac modules containerBuilder.RegisterModule(new ApiModule()); // build container Container = containerBuilder.Build(); // return service provider return new AutofacServiceProvider(Container); } |
在官方文档中查看更多详细信息