2016-03-03 20 views
21

Próbując ustawić opcje JsonOutputFormatter:JsonSerializerSettings i Asp.Net Rdzeń

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

lub

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

Ale jak tylko dodam to, otrzymuję:

MissingMethodException: Metoda nie znaleziono: ' Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings() '.

używam standardowego Microsoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)

Edycja: rozwiązać go poprzez zainstalowanie Newtonsoft.Json 6.0.6 (co umniejsza wszystkie inne odniesienia)

Ktoś dostał już? Dzięki ..

+1

Gdzie próbował wstawić fragment kodu? Co to jest 'mvcBuilder'? Czy możesz dołączyć kod metody 'ConfigureServices' z' Startup.cs', którego używasz? To jest poprawne miejsce na wywołanie 'AddJsonOptions'. – Oleg

+0

To po prostu przypadkowo zaczęło mi się dziś dziać. Szczerze mówiąc to działało wczoraj, co naprawdę pozostawia mnie zdziwionym. –

Odpowiedz

1

Zakładam używasz ASP.Net rdzeń i należy użyć "Microsoft.AspNetCore.Mvc":

więc zastąpić to:

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

przez to:

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

.NET Core 1.0 RTM jest dostarczany z formatowaniem CamelCase natychmiast po zainstalowaniu. To jest zachowanie change z RC2. Jednakże, jeśli trzeba go zmodyfikować, spróbuj tego fragmentu:

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

Więcej informacji here.

Dla rdzenia dotnet 1.0.1:

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

Dziękuję bardzo! Nie mogłem się zorientować, gdzie działa automatyczna obudowa wielbłąda. –

+4

Jakieś pojęcie o tym wywołaniu w .Net core 1.1? –

+0

@LeviFuller jest taki sam - 'AddJsonOptions' – chester89

Powiązane problemy