更新时间:2023-02-15 17:07:16
要获得部分答案,请与DefaultContractResolver.DefaultMembersSearchFlags混淆,以使其包含私人物品:
For a partial answer, messing with DefaultContractResolver.DefaultMembersSearchFlags can get it to include private things:
Newtonsoft.Json.JsonSerializerSettings jss = new Newtonsoft.Json.JsonSerializerSettings();
if (includePrivateMembers)
{
Newtonsoft.Json.Serialization.DefaultContractResolver dcr = new Newtonsoft.Json.Serialization.DefaultContractResolver();
dcr.DefaultMembersSearchFlags |= System.Reflection.BindingFlags.NonPublic;
jss.ContractResolver = dcr;
}
return Newtonsoft.Json.JsonConvert.SerializeObject(o, jss);
似乎可以处理许多对象,尽管有些对象似乎会生成CLR异常.
Seems to work on a lot of objects, though with some this seems to generate a CLR exception.