【问题标题】:The type or namespace name 'MvcJsonOptions' could not be found in .net core 3.1在 .net core 3.1 中找不到类型或命名空间名称“MvcJsonOptions”
【发布时间】:2021-06-15 04:48:11
【问题描述】:

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

IOptions<MvcJsonOptions> 选项中抱怨MvcJsonOptions

IOptions<MvcOptions> 中也遇到MvcOptions 的问题。

另一个是options.SerializerSettings,在SetupSerialiserSettings(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))

【问题讨论】:

    标签: asp.net-core .net-core-3.1


    【解决方案1】:

    首先可以参考link,发现MvcJsonOptions只适用于2.1, 1.0, 1.1, 2.0, 2.2,也可以参考Breaking changes to Microsoft.AspNetCore.App in 3.0

    在 .net core 3.1 中,Json.NET 在 ASP.NET Core 中的内部使用已被新的平台提供的 JSON API 取代。参考The future of JSON in .NET Core 3.0

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

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

    【讨论】:

    • 你好@Yiyi You,你能为JsonDeserialiser(IOptions&lt;MvcJsonOptions&gt; options)提供解决方案吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多