使用.net core 3预览版4,F#asp.net MVC项目的“ API”模板无法生成。这对模板没有任何更改。
这是失败的代码:
type Startup private () =
member this.ConfigureServices(services: IServiceCollection) =
// Add framework services.
services.AddControllers().AddNewtonsoftJson() |> ignore
有错误
... \ Startup.fs(23,35):错误FS0039:未定义字段,构造函数或成员'AddNewtonsoftJson'。也许您需要以下之一:AddNewtonsoftJsonProtocol
似乎有changes coming for this-它是否正在开发并且目前无法使用?
答案 0 :(得分:1)
为了将ASP.NET Core 3.0切换回使用JSON.NET,您将需要引用Microsoft.AspNetCore.Mvc.NewtonsoftJson
NuGet package。它将包含AddNewtonsoftJson
扩展方法。
在C#中,它看起来像这样:
services.AddControllers()
.AddNewtonsoftJson();
因此,假设我对F#理解得足够多,那么我想说,如果您在项目中引用了该程序包,那么您的调用将是正确的。
答案 1 :(得分:1)
这对我有帮助:
services.AddControllers().AddNewtonsoftJson(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
答案 2 :(得分:1)
它对我有用,从 NuGet 安装 NewtonsoftJson 包 “dotnet 添加包 Microsoft.AspNetCore.Mvc.NewtonsoftJson --version 3.1.0” 版本 3.1.0 适用于 ASP.NET Core 3.0 并使用以下代码-
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
.AddNewtonsoftJson(opt => {
opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
});
希望一切顺利,谢谢。