私はwebapiとなる最初の.NET CORE 2.0プロジェクトを開始しました。これまでのところ、私はAutofacを設定しようとする問題にぶつかりました。私はhereと記載された指示に従った。しかし残念ながらStartUpでビルドエラーが発生します。明らかにContainerBuilder
にはPopulate()
の定義が含まれていません。またタイプAutofacServiceProvider
が見つかりませんでした。私はしばらくの間、ネットを検索し、2.0の正しいドキュメントを探しています。ソースが1.0または2.0をターゲットにしているかどうかは、ばらばらになっており、必ずしも明確ではありません。残念ながら、すべてのオプションがビルドエラーに終わるので、私は公式のドキュメントで提供されている実装に固執すると思いました。 Autofacが.NET Core 2.0でこの形式の起動をサポートしない可能性はありますか? FYI.NETコア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