2016-03-03 17 views
21

Versuch JsonOutputFormatter Optionen einzustellen:JsonSerializerSettings und Asp.Net Kern

var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter); 
if (jsonFormatter != null) 
{ 
    jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
} 

oder

mvcBuilder.AddJsonOptions(jsonOptions => 
    { 
     jsonOptions.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 
    }); 

Aber sobald ich hinzufügen, das ich bekommen:

Missing: Methode nicht gefunden: ' Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings() '.

Ich bin mit dem Standard Microsoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)

Edit: es wurde gelöst durch Newtonsoft.Json 6.0.6 Installation (die alle anderen Referenzen stuft)

bekam Wer das schon? Dank ..

+1

Wo Sie versucht, das Codefragment einfügen? Was ist 'mvcBuilder'? Könnten Sie den Code der ConfigureServices-Methode von 'Startup.cs' mitverwenden, den Sie verwenden? Es ist der richtige Ort, um 'AddJsonOptions' aufzurufen. – Oleg

+0

Das ist mir zufällig heute zufällig passiert. Ehrlich gesagt, es funktionierte gestern, was mich wirklich verwirrt. –

Antwort

1

Ich nehme an, Sie ASP.Net Kern verwenden und Sie sollten "Microsoft.AspNetCore.Mvc" verwenden:

diese So ersetzen:

"Microsoft.AspNet.Mvc": "6.0.0-rc1-final" 

durch diese:

"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final" 
42

.Net Core 1.0 RTM wird standardmäßig mit CamelCase-Formatierung geliefert. Dies ist ein Verhalten change von RC2. Allerdings, wenn Sie es ändern müssen, versuchen Sie diese Schnipsel:

services.AddMvc() 
     .AddJsonOptions(opt => 
    { 
     var resolver = opt.SerializerSettings.ContractResolver; 
     if (resolver != null) 
     { 
      var res = resolver as DefaultContractResolver; 
      res.NamingStrategy = null; // <<!-- this removes the camelcasing 
     } 
    }); 

Weitere Informationen here.

Für Dotnet Kern 1.0.1:

services 
      .AddMvcCore() 
      .AddJsonFormatters(o => o...); 
+1

Vielen Dank! Ich konnte nicht herausfinden, wo das automatische Kamelgehäuse war. –

+4

Irgendeine Idee, was dieser Anruf in .Net Kern 1.1 ist? –

+0

@LeviFuller es ist das gleiche - 'AddJsonOptions' – chester89

Verwandte Themen