簡體   English   中英

設置JsonConvert.DefaultSettings asp net core 2.0不能按預期工作

[英]Setting JsonConvert.DefaultSettings asp net core 2.0 not working as expected

我在Startup.cs中有以下代碼,並期望它覆蓋默認的序列化選項。 我希望它覆蓋我的asp net core 2.0項目中的每一個序列化,但是動作返回值不正確,我認為這個全局屬性在core 2.0中不起作用

我把它寫在app.UseMvc()之前的配置中;

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                Formatting = Formatting.Indented,
                TypeNameHandling = TypeNameHandling.Objects,
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters = new List<JsonConverter> { new StringEnumConverter() }
            };

在ASP.NET Core中,這是在Startup.ConfigureServices應用程序上的服務時配置的。 有一個流利AddJsonOptions(Action<MvcJsonOptions>)延伸到IMvcBuilder由返回AddMvc()擴展。 MvcJsonOptions公開了一個SerializerSettings屬性,您可以在操作代碼中配置該屬性。

因此,它不是在注冊MVC之前配置一次,而是作為MVC注冊的一部分完成的。

結合您的設置的示例:

services.AddMvc()
  .AddJsonOptions( options =>
  {
    options.SerializerSettings.Formatting = Formatting.Indented;
    options.SerializerSettings.TypeNameHandling = TypeNameHandling.Objects;
    options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    options.SerializerSettings.Converters.Add(new StringEnumConverter());
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM