我的web方法正在返回一些值作为列表,但是在调用这些web方法时将其作为数组对象。如何将它与list相同。我的web方法类似于此
[WebMethod]
public List<ReturnList> GetReturnList()
{
List<ReturnList> ReturnList=new List<ReturnList>();
//Calcuations
return ReturnList;
}
答案 0 :(得分:4)
您的网络方法定义并不缺少任何内容。由于SOAP以及如何定义和结构化列表,列表将转换为数组。如果您在使用该方法时确实需要一个列表,请将该数组转换回您正在使用它的List。您还可以创建一个Web服务包装器,您可以在其中包装该Web方法并返回List&lt;&gt;而不是数组。方法体只会调用Web服务并将数组转换为List&lt;&gt;并将其归还。
检查Here
答案 1 :(得分:3)
List更像是一种特定于语言的数据结构。所有特定于语言的数据类型都将映射到XML数据类型的语言中性数据类型。
当发生请求/响应时,将发生XML映射,从而通过平台和语言实现互操作性。
The reason that the List kind of data types are not getting as the same data type,
because there is no equivalent XML data type available.
因此,您可以使用实用程序将List转换为数组,反之亦然,以满足您的要求
答案 2 :(得分:0)
[WebMethod]
public static Details[] GetData()
{
DataSet dsDetails = new DataSet();
List<Details> details = new List<Details>();
try
{
Database db = DatabaseFactory.CreateDatabase("String");
DbCommand dbCommand = db.GetStoredProcCommand("GetDetails");
dsDetails = (DataSet)db.ExecuteDataSet(dbCommand);
foreach (DataRow dtrow in dsDetails.Tables[0].Rows)
{
Details report = new Details();
report.ID = Convert.ToInt32(dtrow["ID"].ToString());
report.ReferenceID = Convert.ToInt32(dtrow["ReferenceID"].ToString());
report.ProductID = dtrow["Name"].ToString();
details.Add(report);
}
}
catch (Exception)
{
}
finally
{
}
return details.ToArray();
}