2012-08-03 23 views
0

我正在開發一個使用MVC 3和ASMX Web服務的Web應用程序。如何將列表<object>發送到Web方法?

我想傳遞一個List <對象>到Web方法,但我得到了以下錯誤:

「無法從‘System.Collections.Generic.List’轉換爲‘WebServiceClass.ArrayOfAnyType’」

這是我的Web服務定義:

public class WebServiceClass : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public bool MyWebMethod(List<object> ParameterValues) 
    { 
     //do stuff.. 
    } 
} 

這是代碼塊,我調用Web方法:

 List<object> ParameterValues = new List<object>(); 

     WebServiceClass.WebServiceClassSoapClient MyWebService = new WebServiceClass.WebServiceClassSoapClient(); 

     //I use actual objects here, this is just for an example 
     ParameterValues.Add(new DateTime(2012,5,2)); 
     ParameterValues.Add(23); 
     ParameterValues.Add("some string"); 

     MyWebService.MyWebMethod(ParameterValues); 

我的想法是節省時間並將對象列表傳遞給所有Web方法,而不是定義WebMethod(DateTime日期,int someint,字符串somestring)。

有沒有解決方案呢?

此致敬禮。

回答

0

如果您的方法需要使用DateTime,intstring類型的3個參數,而不是使用此參數定義方法。否則,你將不得不倒下,你的解決方案不是類型安全的。

在代碼中的所有方法都將對象列表作爲參數嗎?可能不會。這同樣適用於Web方法。

+0

我希望我的所有Web方法都能接收一個對象列表,因爲它們都調用帶有很多參數的存儲過程。我的想法是用'foreach'迭代列表,並毫不費力地將所有參數添加到存儲過程命令中。我想過一個替代方案,即在Web服務端使用List < object >,然後調用一個將單個對象添加到列表的Web方法。問題是,當我調用Web方法時,會創建一個新的Web服務實例,並且會丟失列表中的內容。 – 2012-08-03 12:18:32

相關問題