在意识到问题似乎是在RavenDb库而不是json.net库中的最新编辑
到目前为止,我一直使用这段代码来序列化匿名类型:
using Raven.Imports.Newtonsoft.Json;
var anon = new { errors = new string[] { "Login error" } };
var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var str = JsonConvert.SerializeObject(anon, Formatting.None, settings);
在jven.net中嵌入了RavenDb 2.x。
最近我开始了一个新项目。它使用最新的RavenDb 3.x。
现在,当我序列化一个匿名类型时,我得到结果字符串中的其他字段,例如:
{"<errors>i__Field":["Login error"],"errors":["Login error"]}
由于
答案 0 :(得分:0)
在RavenDb 3.x中进行了更改。 所以有两个解决方案:
或者自定义设置:
ContractResolver = new CamelCasePropertyNamesContractResolver(){DefaultMembersSearchFlags = System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance}
(请注意,DefaultMembersSearchFlags已标记为已废弃)