Je viens de mettre à niveau mon projet d'API Web ASP à partir de. Net core 2.0
à 3.0
. J'utilisais
services.AddMvc()
.AddJsonOptions(options =>options.SerializerSettings.ContractResolver
= new DefaultContractResolver());
précédemment pour garantir la casse inférieure du JSON sérialisé.
Après la mise à niveau vers 3.0, j'obtiens cette erreur:
L'erreur CS1061 'IMvcBuilder' ne contient pas de définition pour 'AddJsonOptions' et aucune méthode d'extension accessible 'AddJsonOptions' acceptant un premier argument de type 'IMvcBuilder' n'a pu être trouvée (vous manquez une directive using ou une référence d'assembly?)
Selon AddJsonOptions pour MvcJsonOptions dans Asp.Net Core 2.2, la méthode d'extension AddJsonOptions est / a été fournie par le package nuget Microsoft.AspNetCore.Mvc.Formatters.Json . J'ai essayé d'installer / réinstaller ceci mais je n'arrive toujours pas à résoudre la méthode. Fait intéressant, intellisense n'affiche que les Microsoft.AspNetCore.Mvc.Formatters. Xml lorsque j'essaie d'ajouter l'instruction using même si j'ai ajouté le package Json nuget.
Une idée de ce qui se passe? La documentation pour AddJsonOptions ne remonte qu'à .Net 2.2, donc peut-être que la méthode a été déconseillée dans la version 3.0 au profit d'un autre mécanisme de configuration?
la source
AddNewtonsoftJson
, il manque, même après avoir référencé cetteMicrosoft.AspNetCore.Mvc.NewtonsoftJson
référence.[JsonIgnore]
partir de l'System.Text.Json.Serialization
espace de noms.Cela a fonctionné pour moi, tout en utilisant
.Net Core 3
:la source
o.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
o.JsonSerializerOptions.DictionaryKeyPolicy = null;
eto.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
Cela aiderait
la source