0

Web サービスと Web アプリケーションがあります。
Web サービスには次のコードがあります。

List<string> listCen =new List<string>();
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
 serv.Parameters(element, number, out listCen);

不要な詳細は入力しません。Web アプリケーションには次のコードがあります。

 public double[][] Parameters(int N_element, int N_number, out List<string> list2)
 {

 }

しかし、「System.Collections.Generic.Listをstring []に変換できません」というエラーが表示されます

私が Visual Studio 2010 Ultimate と C# を使用している方法で、誰かがこの理由を説明できますか? OUT ステートメントの Web サービスからの期待される結果の 1 つは、3 から 20 の文字列のリストであることを忘れていました。だから私が本当に必要なのは文字列のリストです

4

3 に答える 3

1

したがって、私が正しく理解していれば、最初のコードスニペットは、自動生成されたWeb参照クラスを介してWebアプリケーションにアクセスしています。あれは正しいですか?

メソッドのList<string>定義でaを使用している場合でも、これは、Webアプリケーションと呼び出し元のコードの間でデータが送信される方法の点で配列と区別できません。List<>Visual Studioは、 sが参照クラスの配列として扱われるようにWebアプリケーションの定義を解釈します。解決策は簡単です-配列を渡すだけです:

string[] listCenAry;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCenAry);

// if you need a List<string>:
List<string> listCen = new List<string>(listCenAry);
于 2013-01-16T20:19:05.623 に答える
1

「サービス参照」を追加すると、生成された「コレクション タイプ」を指定するオプションがあります。デフォルトでは、これは System.Array ですが、必要に応じて System.Collections.Generic.List に変更できます。参照を追加する場合、これは「詳細」セクション (左下のボタン) にあります。参考までに、以下のスクリーンショットを参照してください。

ここに画像の説明を入力

于 2013-01-16T20:49:46.857 に答える
0

私の推測では、参照を追加すると、list2パラメーターが文字列配列に変換されました。コレクション型を使用するようにサービス参照設定を変更するかGeneric.List、配列を使用するようにクライアント側を変更することができます。

string[] listCen;
serviciowebclienteKmeans.ServicioWebKmeans serv = new serviciowebclienteKmeans.ServicioWebKmeans();
serv.Parameters(element, number, out listCen);
于 2013-01-16T20:19:50.973 に答える