gpt4 book ai didi

c# - 在 .NET Core 2.0 中配置 Autofac 时遇到问题

转载 作者:太空狗 更新时间:2023-10-29 22:15:31 25 4
gpt4 key购买 nike

我从我的第一个 .NET CORE 2.0 项目开始,它是一个 webapi。到目前为止一直很好,直到我在尝试配置 Autofac 时遇到问题。我遵循了描述的说明 here .但不幸的是,我在 StartUp 中遇到构建错误。显然 ContainerBuilder 不包含 Populate() 的定义。也找不到类型 AutofacServiceProvider。我在网上搜索了一段时间,试图找到 2.0 的正确文档。它是分散的,并不总是很清楚源是针对 1.0 还是 2.0。不幸的是,所有选项最终都会出现构建错误,所以我想我会坚持使用官方文档提供的实现。有没有可能是Autofac在.NET Core 2.0中不支持这种启动方式。

仅供引用:

using Autofac;
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace TEST.API
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

public IConfiguration Configuration { get; }

public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();

var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterModule<ServiceModule>();
containerBuilder.Populate(services);
var container = containerBuilder.Build();
return new AutofacServiceProvider(container);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseMvc();
}
}
}


<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Model\Recipy.Model.csproj" />
<ProjectReference Include="..\Service\Recipy.Service.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac" Version="4.6.2" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="4.2.0" />
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
</Project>

最佳答案

解决这个问题的方法很简单,Populate 方法和 AutofacServiceProvider 都在您目前未使用的 namespace 中。

你还需要“Autofac.Extensions.DependencyInjection”

然后这两个问题应该解决了

关于c# - 在 .NET Core 2.0 中配置 Autofac 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47658909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com