C# JsonSerializerSettings和Asp.Net Core

C# JsonSerializerSettings和Asp.Net Core,c#,json.net,asp.net-core,C#,Json.net,Asp.net Core,正在尝试设置JsonOutputFormatter选项: var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter); if (jsonFormatter != null) { jsonFormatter.SerializerSettings.ContractResolver = new CamelCaseProper

正在尝试设置JsonOutputFormatter选项:

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

但当我加上这个,我得到:

MissingMethodException:找不到方法:“Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()”

我使用的是标准的
Microsoft.AspNet.Mvc.Formatters.Json(6.0.0-rc1-final)

编辑:通过安装
Newtonsoft.Json 6.0.6
解决了这个问题(这会降低所有其他引用的级别)

有人已经知道了吗?
谢谢..

我假设您使用的是ASP.Net Core,您应该使用“Microsoft.AspNetCore.Mvc”:

因此,请将其替换为:

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

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

.Net Core 1.0 RTM附带现成的CamelCase格式。这是来自RC2的行为。但是,如果需要修改,请尝试以下代码段:

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

您尝试在何处插入代码片段?什么是
mvcBuilder
?您是否可以包括您使用的
Startup.cs
中的
ConfigureServices
方法的代码?这是调用
AddJsonOptions
的正确位置。这是我今天随机开始遇到的。老实说,昨天还在工作,这让我很困惑。非常感谢!我想不出自动驼峰套管发生在哪里。知道.Net core 1.1中的调用是什么吗?@LeviFuller它是一样的-
AddJsonOptions
我已经配置了序列化设置覆盖。现在我必须复制所有内容,因为我无法直接设置SerializerSettings。在asp.net core中有很多不应该这样做的内容都不是特别相关。我们将转到asp.net core,并决定对所有内部内容使用默认设置(camelCase)。然而,为了向后兼容外部系统,我们需要一个控制器的输出为PascalCase。最好的方法是什么?
services.AddMvc()
        .AddJsonOptions(opt =>
    {
        var resolver  = opt.SerializerSettings.ContractResolver;
        if (resolver != null)
        {
            var res = resolver as DefaultContractResolver;
            res.NamingStrategy = null;  // <<!-- this removes the camelcasing
        }
    });
  services
            .AddMvcCore()
            .AddJsonFormatters(o => o...);