我試圖從REST服務反序列化JSON。我將JSON反序列化爲一個結構體。該結構包含公共屬性。我想隱藏基本的對象,併爲每個值使用正確的對象。在這樣做的過程中,我隱藏了原始屬性,並希望找到一種方法來填充它們,儘管如此。我在stackoverflow上找到了一個relevant answer。問題在於私有屬性在反序列化過程中實際上並未分配任何值。JSON.NET不反序列化到私有屬性
然後我試圖創建我自己的ContractResolver
。我發現下面的代碼爲CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
。
var prop = base.CreateProperty(member, memberSerialization);
if (!prop.Writable)
{
var property = member as PropertyInfo;
if (property != null)
{
var hasPrivateSetter = property.GetSetMethod(true) != null;
prop.Writable = hasPrivateSetter;
}
}
return prop;
這仍然不分配給完全私人財產。我不確定如何從這裏開始,因爲我所能找到的所有解決方案都使用這兩種解決方案的變體。我應該如何繼續?
編輯:
我已經創建了一個展示我的問題的一個小例子。 https://gist.github.com/Herbstein/9ea14e2a4d95dd5aa4430384bfeeedf3
請你可以創建一個[MVCE](http://stackoverflow.com/help/mcve)來演示你的問題。目前,您沒有展示您的模型是什麼樣子的,您是如何將合同解析器設置爲序列化器的,您是如何實際執行序列化的等等。 –
@RB我馬上就會這樣做。 – Herbstein
@RB。我創建了一個小例子,它在OP中鏈接。具有所有可能配置的程序輸出只是一個空行。 – Herbstein