[英]How to choose fields that are serialized to JSON with ServiceStack
我正在為我的應用程序編寫API,並且修改了默認的序列化程序以使用ServiceStack庫版本3.9.71。 我有兩個返回相似數據的端點,但是在一種情況下,我想排除對象的某些屬性。 這是我正在使用的對象:
public class Folder
{
public int ID { get; set; }
public string Name { get; set; }
public int? ParentID { get; set; }
public virtual ICollection<Folder> Children { get; set; }
public virtual ICollection<File> Files { get; set; }
}
在一個API端點中,我想返回整個對象,包括集合Children和Files。 在另一個示例中,我想返回除集合Children和Files之外的所有內容,以減少設置給客戶端的數據量。
將[DataContract]與[DatMember]或僅與[IgnoreDataMember]一起使用似乎在這里不起作用,因為這些屬性在反序列化期間似乎被忽略,即使它們包含在JSON中。
同樣,由於它是靜態屬性,因此JsConfig.ExcludePropertyNames似乎可以正常工作,並且在發送JSON響應之后以及進行下一次調用之前,我無法重置列表。
我還嘗試過在序列化之前使這些集合無效,但是這些對象已附加到DbContext,因此似乎沒有任何影響。
無論如何,有沒有像我嘗試的那樣返回同一對象的不同序列化?
重復?
如何忽略僅在ServiceStack JSON序列化程序中獲取屬性?
但是要回答您的問題,我建議讓服務將不需要的屬性設置為null,然后再將其返回到響應對象。 我不明白為什么您要對DbContext附加永久引用(假設這是指Entity Framework),因為DbContext相當短暫,應該像數據庫連接一樣使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.