2011-09-06 82 views
0

This comment to an answer from John Saunders是Stack Overflow的一名非常重要的成員,他說從Web服務返回匿名類型是一種不好的做法。是否可以從asmx服務方法返回<anonymous>

假設我有一種奢侈而不關心我的網站在禁用Javascript的用戶面前的優雅退化,爲什麼有一個服務方法是不好的做法,它只存在通過Ajax調用,返回一個匿名目的?

看起來這樣浪費了一個具體類型,其唯一目的是在asp.net將其序列化爲JSON之前將數據保存幾微秒。

+0

在試圖找出爲什麼我的ASMX試圖使用XML序列化時,即使我強制JSON都在ScriptMethod屬性和ajax調用中,因此它不會序列化我的匿名對象,因爲它沒有序列化一個無參數的構造函數。你有沒有找到解決辦法? –

+0

@MatteoMosca - 應該有效。您的代碼可能存在問題 - 只需發佈一個新問題,我相信有人可以提供幫助。但是,是的,返回應該*工作*罰款,並序列化成JSON沒有問題 - 這個問題是關於最佳實踐。 –

回答

2

我的評論是特定於SOAP Web服務的。 SOAP Web服務的消費者習慣於使用強類型數據,因此通過返回類型返回一個匿名類型的對象將迫使他們解析他們不習慣的XML。

但是,對於不期望(或理解)強類型數據的客戶,我的評論不適用。如果他們已經習慣於解析XML或者使用JSON,那麼返回匿名對象不會使情況變得更糟。

相關問題