2013-07-26 54 views
0

我在aspx頁面中使用[webmethod]屬性來向瀏覽器公開一個複雜的數據結構(從xml-> xsd-> xsd.exe自動生成)。ASP.NET json序列化程序只包含頂級類的__type

當我用jQuery獲取客戶端數據後,只有頂級對象包含「__type」屬性,所以我無法確定任何嵌套對象(屬性,數組內容等)的類。

有沒有辦法讓序列化程序在序列化對象時遞歸地包含__type屬性?

+0

你一般不需要它。瞭解頂級類型應該使你能夠了解所有其他類型,因爲所有類型都是靜態類型的。因此,反序列化只需要頂級類型。 – Alxandr

+0

那麼,在我的情況下,生成的類包含一個對象[],其中包含不同的類...所以我要求不同;-) – Tompi

+0

P.S.具體來說,這些數據是從xml格式的biztalk轉儲的規則集。 – Tompi

回答

0

我遇到了另一個JSON序列化程序類似的情況,一個來自ServiceStack.Text。如果一個對象被聲明爲一個接口或一個抽象類,它們將放入__type屬性,也許香草.NET序列化器也會這樣做?如果是這樣的話,有什麼辦法可以將你的object []數組聲明爲一個接口數組?即使像沒有任何方法來結束IEmpty這樣的微不足道的事情也能做到這一點。