[英]'IServiceCollection' does not contain a definition for 'AddControllers' even added newtonjson
[英]'IServiceCollection' does not contain a definition for 'AddControllers'
我有一個 ASP.NET Core 3.0 項目在以下啟動時運行良好:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddControllers();
}
現在我想把這個設置移到另一個項目中,作為一個通用 dll,供許多其他 ASP.NET Core 3.0 項目使用,所有這些項目都將通過調用services.Configure();
來執行啟動services.Configure();
,考慮到Configure
將是我創建的擴展方法。
為此,我使用以下 .csproj 文件創建了另一個項目:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="2.2.0" />
</ItemGroup>
</Project>
以及以下課程:
using System;
using Microsoft.Extensions.DependencyInjection;
namespace MyCommon.Extensions
{
public static class MyIServiceCollectionExtensions
{
public static class IServiceCollectionExtensions
{
public static IServiceCollection Configure(this IServiceCollection services)
{
services.AddCors();
services.AddControllers();
return services;
}
}
}
}
這給了我以下構建錯誤:
“IServiceCollection”不包含“AddControllers”的定義
由於我已經添加了Microsoft.AspNetCore.Mvc
包,我不明白為什么找不到AddControllers
方法。
我在 Asp .netcore 3.0 上得到了同樣的結果。 通過添加 Microsoft.AspNetCore.Mvc.NewtonsoftJson 包解決了它。
Services.AddControllers 是在 3.0 核心而不是 2.2 中添加的,此外,由於序列化問題,建議在使用 .NET Core 3.0+ 時使用 Newtonsoft.Json:Nuget。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.