.NET Core 3预览4:未定义'AddNewtonsoftJson'

Raz*_*zor 2 f# .net-core-3.0

使用.NET Core 3预览4,F#ASP.NET MVC项目的“ API”模板无法生成。这对模板没有任何更改。

F#ASP.NET MVC项目的“ API”模板

这是失败的代码:

type Startup private () =
    member this.ConfigureServices(services: IServiceCollection) =
        // Add framework services.
        services.AddControllers().AddNewtonsoftJson() |> ignore
Run Code Online (Sandbox Code Playgroud)

有错误

... \ Startup.fs(23,35):错误FS0039:未定义字段,构造函数或成员'AddNewtonsoftJson'。也许您需要以下之一:AddNewtonsoftJsonProtocol

似乎为此正在发生变化 -它是否正在开发并且目前无法使用?

pok*_*oke 7

为了将ASP.NET Core 3.0切换回使用JSON.NET,您将需要引用Microsoft.AspNetCore.Mvc.NewtonsoftJsonNuGet包。那将包含AddNewtonsoftJson扩展方法。

在C#中,如下所示:

services.AddControllers()
    .AddNewtonsoftJson();
Run Code Online (Sandbox Code Playgroud)

因此,假设我对F#足够了解,那么我想说,如果您在项目中引用了该程序包,那么您的调用将是正确的。

  • @PawelCioch您需要首先调用`AddControllers()`或类似的东西才能获取MvcBuilder实例。然后你可以调用“AddNewtonsoftJson()”。 (4认同)

Roh*_*hav 6

添加包:Microsoft.AspNetCore.Mvc.NewtonsoftJson
包详细信息: https: //www.nuget.org/packages/Microsoft.AspNetCore.Mvc.NewtonsoftJson
调用AddNewtonsoftJson()扩展方法如下所述

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllersWithViews().AddNewtonsoftJson();
    }
Run Code Online (Sandbox Code Playgroud)