.NET Core 2.1 JSon.NET格式化程序

时间:2018-07-09 01:39:50

标签: asp.net-core json.net .net-core asp.net-core-2.1

我遇到一个问题,在使用自动属性的类中,Json.Net将k__BackingField添加到属性名称。

我查看了各种建议(即添加[JsonObject]),但它们都不适合我。

我发现一个推荐的解决方案是做

((Newtonsoft.Json.Serialization.DefaultContractResolver)config.Formatters.JsonFormatter.SerializerSettings.ContractResolver).IgnoreSerializableAttribute = true;

https://stackoverflow.com/a/36910449/460084

但是我不知道在.NET Core 2.1中在哪里或如何执行此操作?这在Startup.cs中执行吗?怎么样?

我也不敢确定这样做会有帮助,因为我的课开始时没有[可序列化]。

有什么帮助吗?真的没有简单的方法可以更改Json.Net的默认设置以使用属性名称,而无需在.NET Core 2.1中使用k__BackingField

1 个答案:

答案 0 :(得分:0)

通过ConfigureServices方法将其添加到Startup.cs:

// This method gets called by the runtime. Use this method to add services to the container.
public IServiceProvider ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .AddJsonOptions(options => (options.SerializerSettings.ContractResolver as DefaultContractResolver).IgnoreSerializableAttribute = true);

    // ...
}