2012-02-16 33 views
0

私はVS2010でC#を使用しています。私はWebアプリケーションについていくつかの助けが必要です。私はウェブサービスに関する多くの経験がありません。私はアプリケーションのログイン部分を構築するために必要なメソッドを含むWebサービスにURLを与えられました。ドキュメントはありません。私はログイン作品が動作している。それから私は立ち往生する。ログインに成功すると、認証されたユーザーがアクセスできるアプリケーションのリスト(またはオブジェクト?)を返す別のメソッドを呼び出す必要があります。たとえば、自分で返す項目は、157アプリケーションの(名前、説明、場所)です。私はちょうど157のうち1つのアプリケーションが存在するかどうかを見たいと思っています。Webサービスのヘルプが必要

私は3日間で運がなかった。私は結果をArrayListにダンプし、そのリストをGridViewのソースにすることができましたが、結果を反復処理する方法はわかりません。私は自分のアプローチが正しいとは思っていないので、この段階ではコードを一切含んでいません。結果のオブジェクトをおそらくxmlに変換しますか?私はあなたのフィードバックとアドバイスに感謝します。

更新:今すぐ

protected void Button_Click(object sender, EventArgs e) 
    { 
     ServiceReference1.Identity usr = new ServiceReference1.Identity(); 
     loginService.AuthenticationService auth = new loginService.AuthenticationService(); 
     loginService.AuthenticationService auth = new loginService.AuthenticationService(); 
     auth.Login(TextBox1.Text, TextBox2.Text, "10.55.31.91"); 
     List<object> roles = new List<object>(auth.GetIdentityRoles(TextBox1.Text)); 
     IEnumerable myEnum = roles; 
     IEnumerator myEnumerator = myEnum.GetEnumerator(); //Getting the Enumerator 
     myEnumerator.Reset(); //Position at the Beginning 
     while (myEnumerator.MoveNext()) //Till not finished do print 
     { 
      Response.Write(myEnumerator.Current.ToString()); 
     } 
    } 

、私はデバッグ中6行目の「役割」の上にマウスを置く場合、私は私が検索したいフィールドを見ることができます。私は "名前"に "管理者"が含まれているかどうかを知りたいのですが、私のすべての例は13行目の "loginService.Role"を返すだけです。それはloginService.Rolesを20回書くだけです。私は次のレベルに下がる必要があります。それは金曜日で、それは私の誕生日です、助けてください笑。

[+] roles = Count = 20 
[+] {loginService.Role} 
    Name = "Administrator" 
    nameField = "Administrator" 
+4

foreachキーワードを使用してArrayListを繰り返し調べ、その中の内容を調べます。 – tomfanning

+0

あなたのアプローチが間違っていても、ここにいる人はあなたのアプローチを調整するか、少なくともあなたのアプローチがうまくいかない理由を指摘することができます。 – Dan

+0

また、 'ArrayList'を使う習慣から抜け出してください。任意のタイプのリストが必要な場合は 'List 'を使用してください。 –

答えて

1

まず、サービス参照を最初に設定して適切なクライアントプロキシクラスを作成していますか?

Visual Studioの[サービス参照の追加]を使用するには、プロジェクトのソリューションエクスプローラーで[参照]ノードを右クリックし、[サービス参照の追加]を選択します。次のようにURLを入力します。

http://domain.com/Servicename.asmx?WSDL

サービスリターンがプロキシクラスを作成するには、Visual Studioで使用されていることをWSDL文書。 このクラスを検査すると、すべてのメソッド、シグネチャ、およびタイプを表示できます。

ほとんどのWebサービスは、このWSDL XMLドキュメントを返すように設定されています。

+0

はい、以前はWeb参照を使用していましたが、ソリューション例の一部としてサービスを作成したチュートリアルでのみ使用しました。私が呼び出す方法は Bill