0

我不得不调用一个返回 QueryBean 的 ColdFusion Web 服务。它返回一组具有我正在寻找的值的复杂数组。当我拨打电话时,我得到了我期望的数组中的所有数据,但现在我试图获取数据,它一直告诉我我遗漏了一些东西,或者我不能对对象使用索引。

我在 VS2010 中创建了一个名为 DAM_Search 的 Web 引用,并使用此命令调用它;

DAM_Folder.folderService obj_Folder = new DAM_Folder.folderService();
DAM_Folder.QueryBean qBean = bj_Folder.getfolder("1-Key", str_Folder_ID);

我得到的是 qBean,其中包含 4 个数组,前两个数组是

qBean.columnList[10]
qBean.columnListField[10]

并包含在数据行中使用的字段的名称。接下来它有

qBean.data[4]
qBean.dataField[4]

这是返回数据的地方。在上面的示例中,qBean 中返回了 4 行数据。数据位于一个数组中,其中包含在 中命名的列的值columnList[10]

我认为由于一张图片值 1000 字,这可能会有所帮助。

qBean 捕获
(来源:sapp-family.com

我现在要做的是从qBean.data[0][0]. 在我尝试的即时窗口中,? qBean.data[0]它返回正确的值数组。

我试过以下

? qBean.data[0][0] 
"Cannot apply indexing with [] to an expression of type 'object'"

? qBean.data[0].[0]
Identifier expected

? qBean.data[0,0]
Wrong number of indices inside []; expected 1

那么,我的 Stackoverflow 用户,我需要做什么来获取这个对象的值?我认为这很简单,我只是想多了,但它现在只是把我逼到了墙角。

4

2 回答 2

0

我会尝试 qBean.data[0][0].toSting()

于 2012-09-24T21:04:41.903 回答
0

好的,所以我被跟踪了,没有回去更新原始问题。对于那个很抱歉...

我对这个问题的解决方案是将 转换qBean.Data[0]IEnumerable对象。然后我通过一个foreach循环运行它,该循环将数据输入一个数组,我可以将它传回调用函数。例如;

string[] FileData = new string[0];            
foreach (var var_Value in (IEnumerable)qBean.data[0])
        {
            Array.Resize<string>(ref FileData, FileData.Length + 1);
            FileData[FileData.Length-1] = var_Value.ToString();
        }

既然我知道这是可行的,我将从 QueryBean 中的另一个数组中提取一个计数并FileData[]在开始之前设置大小,foreach这样我就不必使用Array.Resize<>. 虽然目前我使用的数据很小,但我永远不知道未来会是什么。

蒂姆

于 2012-09-26T12:46:26.420 回答