在我的asmx文件,我有傳遞IDictionary的對象,以Web服務
[WebMethod]
[ScriptMethod]
public void Method(IDictionary<string, CustomClass> objectOfCustomClass)
{
//do stuff
}
自定義類的定義爲:
public class CustomClass
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
}
一切順利和Web服務被成功地從jQuery的AJAX消耗方法。最近,我決定測試和嘗試,並從直接URL如http://localhost/Services.asmx/Method
訪問它,我得到這個消息
「無法序列接口System.Collections.Generic.IDictionary」
這似乎關閉。是什麼導致它,這是正常的?我很困惑 - 它看起來像乾淨的做事方式,但根據微軟不應該這樣做,但它的工作原理,只有直接訪問Web服務時纔有效。是什麼賦予了?我也讀過一些MS站點,你不能將IDictionary作爲參數傳遞給Web服務,但它工作正常......所以可以做到或不做?有人能澄清這一勞永逸嗎?
明白了。我實際上並不需要通過瀏覽器訪問Web服務 - 我只是使用ajax方法(以JSON格式)在我的JQuery中調用它,所以也許我會保持原樣。我只是想找出問題所在。 – sarsnake 2011-02-09 00:37:16