webapi가되는 첫 번째 .NET CORE 2.0 프로젝트를 시작했습니다. 지금까지는 Autofac을 구성 할 때까지 문제가 없었습니다. 나는 here에 설명 된 지침을 따랐다. 그러나 불행하게도 StartUp에서 빌드 오류가 발생합니다. 분명히 ContainerBuilder
에는 Populate()
의 정의가 없습니다. 또한 AutofacServiceProvider
유형을 찾을 수 없습니다. 나는 그물을 수시로 찾고, 2.0에 대한 올바른 문서를 찾으려고 노력했다. 소스가 1.0 또는 2.0을 대상으로하는 경우 흩어져서 항상 명확하지는 않습니다. 불행히도 모든 옵션은 빌드 오류로 끝나기 때문에 공식 문서에서 제공하는 구현을 고수 할 것입니다. Autofac이 .NET Core 2.0에서이 형식의 초기화를 지원하지 않을 수도 있습니다. 참고로.NET Core 2.0에서 Autofac을 설정하는 데 문제가 있습니다.
이에
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>
왜 대신 Autofac를 사용하는 내장 DI 프레임 워크? –
모듈 덕분에 나는 과거와 함께 작업 해왔다. :) – Nieksa