我遇到一个问题,在使用自动属性的类中,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
答案 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);
// ...
}