我正在创建一个返回HttpResponseMessage的方法。我需要使用自定义JSON Formatter,如下所示:
var jsonFormatter = new JsonMediaTypeFormatter();
jsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
jsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
IsoDateTimeConverter dateConverter = new IsoDateTimeConverter
{
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'"
};
jsonFormatter.SerializerSettings.Converters.Add(dateConverter);
当我使用Newtonsoft.Json版本=" 10.0.2"或" 10.0.1"和targetFramework =" net461",我得到以下例外:
Method not found: 'Newtonsoft.Json.JsonSerializerSettings System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.get_SerializerSettings()
如果我降级到Newtonsoft.Json版本=" 9.0.1",那么它可以正常工作。但是,我们希望获得版本10的一些异步支持。
这是一个知道错误吗?有工作吗?
答案 0 :(得分:1)
当服务器上的旧web.config具有绑定重定向到v8.0.0时,即使bin文件夹中存在v10.0.0,我也遇到此问题。
我改变了:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
</dependentAssembly>
为:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
问题已解决。