0

QueryBeanを返すColdFusionWebサービスを呼び出す必要があります。これは、私が探している値を持つ複雑な配列のセットを返します。呼び出しを行うと、期待している配列内のすべてのデータを取得しますが、データを取得しようとすると、何かが不足しているか、オブジェクトでインデックスを使用できないと通知され続けます。

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);

私が返すのは、4つの配列を含むqBeanで、最初の2つの配列は

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

データ行で使用されるフィールドの名前が含まれています。次にそれは持っています

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

これは、データが返される場所です。上記の例では、4行のデータを返すqBeanです。データは、で指定された列の値を持つ配列にあります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]としてキャストすることです。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ので、。を使用して配列を21回コピーする必要はありませんArray.Resize<>。現在、私が扱っているデータは小さいですが、将来どうなるかはわかりません。

ティム

于 2012-09-26T12:46:26.420 に答える
0

qBean.data [0] [0] .toSting()を試してみます

于 2012-09-24T21:04:41.903 に答える