我的web.config中有一個字符串列表,它描述了允許在我的web api中序列化的模型成員的名稱(由Entity Framework生成) 。
我該如何在運行時設置[IgnoreDataMember]
屬性?
這個想法是,不應該暴露所有的數據,應該暴露的配置,應該可以配置,而無需重新編譯。
到目前爲止,我只是將所有未包含在該列表中的成員的值設置爲null
。但是這個解決方案並不是最優的, datetime
類型的成員序列化爲"0001-01-01T00:00:00"
,此外,響應包含大量不必要的信息(響應可能會增長到150MB)。因此,從序列化過程中刪除成員會更好。如何在運行時從JSON/XML序列化中排除數據成員
0
A
回答
0
您可以使用屬性:
[XmlIgnore]
爲XML或[JsonIgnore]
的JSON。
例如:
[XmlIgnore]
public string MyString { get; set; }
或
[JsonIgnore]
public string MyString { get; set; }
希望這有助於。
0
我用[DataMember(EmitDefaultValue = false)]
解決了它。因此,所有設置爲null的屬性都不包含在響應中。然而,這不是最好的解決方案,因爲現在我無法發送任何空值,而且招搖也顯示了完整的模型。
相關問題
- 1. 從JSon序列化中排除數據成員
- 2. WCF DataContract從派生類中序列化排除數據成員
- 3. WCF排除派生類中要序列化的數據成員
- 4. 如何排除某些成員被序列化爲Json?
- 5. 避免XML序列化時序列化私有數據成員
- 6. 如何在序列化爲XML時有選擇地排除類成員
- 7. 如何在Ruby中排除數組成員,排除特定值?
- 8. 序列化只讀成員數據
- 9. 多維數組成員數據成員運行時錯誤
- 10. C#有沒有辦法從動態序列化中排除成員?
- 11. 是否可以從XmlSerializer序列化中排除某些類型的成員?
- 12. 如何從XML序列化中省略單個列表成員?
- 13. 如何在Clojure中運行時序列化函數?
- 14. 基於類數據成員的數據成員對ArrayList進行排序
- 15. JSON反序列化在C#中的所有數據成員
- 16. 如何從numpy.ndarray數據中排除行/列
- 17. C#序列化JSON從Twitter沒有數據成員
- 18. 如何在使用PyYAML序列化對象時忽略成員?
- 19. 如何從序列化中排除特定類型?
- 20. 按專業化排除班級成員
- 21. 如何在序列化C#時排除屬性 - 對象
- 22. 在運行時如何從內存訪問C結構成員?
- 23. 如何從數組中排除數據?
- 24. boost序列化:反序列化時更新成員
- 25. 在運行時從Jar中檢索和排序文件列表
- 26. 序列化類的成員
- 27. 如何在Apache Beam中序列化運行時創建的類
- 28. 從Dynamics CRM 4和2011中的列表中排除成員
- 29. C++根據兩個數據成員對對象進行排序
- 30. 如何對從按字母順序排列的成員上的File.ReadAllLines返回的數組進行排序?
另外,不要忘記分別使用'System.Xml.Serialization'或'Newtonsoft.Json'。 –
''[IgnoreDataMember]'適用於兩者,我知道。但是這必須根據配置在運行時設置... – Chris
我明白了。您可以編寫自己的JSON轉換器,以便在運行時使用您的條件。另一篇文章可能會幫助:[這裏](http://stackoverflow.com/questions/27397494/web-api-conditional-serialization-of-properties-at-runtime) –