本文介紹了Json.NET 序列化私有成員而不是只讀屬性的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
如何自定義 Json.NET 以序列化私有成員而不序列化公共只讀屬性(不使用屬性).
How can I customize Json.NET to serialize private members and NOT serialize public readonly properties (without using attributes).
我曾嘗試過創(chuàng)建自定義 IContractResolver
,但有點(diǎn)迷茫.
I've had a stab around at creating a custom IContractResolver
but am a bit lost.
推薦答案
對于部分答案,使用 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);
似乎對很多對象都有效,盡管其中一些似乎會(huì)產(chǎn)生 CLR 異常.
Seems to work on a lot of objects, though with some this seems to generate a CLR exception.
這篇關(guān)于Json.NET 序列化私有成員而不是只讀屬性的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!
【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!