如何从C#中的WebService返回ArrayList?

时间:2017-03-01 21:15:58

标签: c# asp.net web-services object arraylist

我一直在尝试从WebService返回一个ArrayList,我很困惑如何得到它,因为我收到一条错误消息说

“无法将类型'object []'隐式转换为'System.Collections.ArrayList'”。

以下是Web服务名称DDRParserService.asmx的代码。

public ArrayList PVTLog(string reqNo, string groupNo, string filePath)
{
ArrayList logData = new ArrayList();

//Calling the Parsing Logic file
logData = ParsePVTLog_Service(reqNo, groupNo, filePath); 

// I get the ArrayList in logData and return it
return logData

}

我使用Web服务的代码:

private void btnParse_Click(object sender, EventArgs e)
{
  string strFilePath = txtOpenFile.Text;
  string serialNo = txtSerialNumber.Text;
  string groupNo = txtGroupNumber.Text;
  ArrayList data = new ArrayList();

  if (txtOpenFile.Text != "")
    {
      DDRParsingService.DDRParserService client = new DDRParsingService.DDRParserService();

      // Call the Web Service
     data =  client.PVTLog(serialNo, groupNo, strFilePath);
      // I get the error : Cannot implicitly convert type 'object[]' to 'System.Collections.ArrayList'          
    }

}

如果您可以帮助我处理此问题并访问Web服务返回的ArrayList中的数据,那将会很棒。

提前致谢!

2 个答案:

答案 0 :(得分:1)

在您的服务参考上点击配置: enter image description here

选择您期望的收藏类型:

enter image description here

单击“确定”,然后更新服务引用: enter image description here

答案 1 :(得分:0)

调用Web Service时,我所要做的就是将Web Service中返回的对象声明为新的ArrayList。

在我发布的上述代码中,我将Web服务称为:

private void btnParse_Click(object sender, EventArgs e)
{
  string strFilePath = txtOpenFile.Text;
  string serialNo = txtSerialNumber.Text;
  string groupNo = txtGroupNumber.Text;
  ArrayList data = new ArrayList();

  if (txtOpenFile.Text != "")
    {
      DDRParsingService.DDRParserService client = new DDRParsingService.DDRParserService();

      // Call the Web Service
     data =  client.PVTLog(serialNo, groupNo, strFilePath);
      // I get the error : Cannot implicitly convert type 'object[]' to 'System.Collections.ArrayList'          
    }

}

但我所要做的就是:

data = new ArrayList(client.PVTLog(serialNo, groupNo, strFilePath));

即。将Web服务中返回的对象[]声明为新的ArrayList!