在 .net core 3.1 中找不到类型或命名空间名称 'MvcJsonOptions'

The type or namespace name 'MvcJsonOptions' could not be found in .net core 3.1

我已将 .net core 2.2 转换为 .net core 3.1。我遇到以下问题。

IOptions<MvcJsonOptions> 个选项中抱怨 MvcJsonOptions

IOptions<MvcOptions> 中的 MvcOptions 也有问题。

另一个是,options.SerializerSettingsSetupSerialiserSettings(options.SerializerSettings)里面。

        public JsonDeserialiser(IOptions<MvcJsonOptions> options) : this(options.Value.SerializerSettings)
        {

        }

           services.AddSingleton<IObjectModelValidator>(
            s =>
            {
                var options = s.GetRequiredService<IOptions<MvcOptions>>().Value;
                
            });
           services.AddControllers()
                .AddJsonOptions(options => SetupSerialiserSettings(options.SerializerSettings))

首先可以参考link and find MvcJsonOptions only applies to 2.1, 1.0, 1.1, 2.0, 2.2.And you can also refer to Breaking changes to Microsoft.AspNetCore.App in 3.0.

在.net core 3.1中,ASP.NET Core中Json.NET的内部用法已经被新平台提供的JSON APIs.Refer替换为The future of JSON in .NET Core 3.0.

所以你可以尝试添加包Microsoft.AspNetCore.Mvc.NewtonsoftJson,然后使用如下代码(来自官方doc):

services.AddControllers().AddNewtonsoftJson(options =>
{
    ...
});