2012-01-23 7 views
0

私は通常の.NET Webサービス(WCFサービスではありません)を持っています。WP7で通常のWebサービスを呼び出す

サービスリファレンスを使用している私のWP7プロジェクトにこのサービスを追加しました。通常、Add Service Referenceオプションを使用してWCFサービスを追加しますが、ここではAdd Service Referenceオプションを使用して通常のWebサービスを追加します。

は、例えば、私はこのようなサービスがあります。

public class Service1 
    { 
     //local class variable 
     public MsgHeader msh; 

     //I have two functions like below: 
     [WebMethod] 
     public int Fun1() 
     { 
      return 1; 
     } 
     [WebMethod] 
     public int Fun2() 
     { 
      // Here i am checking msh(MsgHeader) values with the database. 
      //If this information is not correct i am not proceeding further. 
      // some calculations 
      return result; //returning some results 
     } 
    } 

私はWP7で、このようなメソッドを呼び出しています:

Class TestModel 
{ 
    public void TestFun1() 
     { 
      RS.Service1SoapClient objRS = new RS.RSService1SoapClient(); 
      objRS.Fun1Completed += new EventHandler<RS.Fun1CompletedEventArgs>(objRS_Completed); 
      objRS.Fun1Async(); 
     } 

    private void objRS_Completed(object sender, EventCompletedEventArgs e) 
     { 
      string str = e.Result; 
      responseEventArgs = new ResponseEventArgs(); 
       responseEventArgs.response = e.Result;     
       System.Windows.Deployment.Current.Dispatcher.BeginInvoke(responseEventHandler, responseEventArgs); 
     } 
} 

は、ここで私はFUN1のために成功しました検索結果を取得することができています。しかし、私はサービスクラス変数(Fun2の変数mshのようなもの)を使用している同じサービスでもう1つの関数(Fun2)を持っています。サービス参照を追加すると、サービスクラスがService1SoapClient(TestFun1関数のTestModelに示されているように)になり、TestFun1()関数のそのクラス(wp7)のオブジェクトを作成しました。このオブジェクト(ServiceSoap1Client )にはmshという変数はありませんが、Service1SoapClientクラスにはFun2Async()とFun2Completedというイベントがあります。

私はここで私は同じ名前で私のサービスクラスを取得していますし、私はそのクラスのオブジェクトを作成したVisual Studioで2010年

をWeb参照の追加使用して、同じサービスを追加した、ここで私は、その変数MSHを得ることができますよしかし、同じ変数私はWP7で得ることができません。 Visual StudioでWeb参照のために

コードは、2010年

Private void Test() 
{ 
    SR.Service1 objS=new SR.Service1(); 
    SR.MsgHeader msh=new SR.MsgHeader(); 
    msh.Name="test"; 
    // I have given some more values to msh 
    objS.msh=msh; 
    int result= objS.Fun2(); 
} 

私の質問は以下のとおりです。

1)私たちはWeb参照を追加していないので、私はサービス参照を使用して、通常のWebサービスを追加しましたビジュアルスタジオ2010のWindows phone用の表現。そうですか?

2)サービス参照を使用して通常のWebサービスを追加しました。正しい変数であれば、どのようにmsh変数を取得できますか?

3)サービスリファレンスを使用して通常のWebサービスを追加しました。正しい方法でない場合、どのようにWP7の通常のWebサービスを呼び出すことができますか?

私を助けてください。 ありがとうございます。

+0

私はあなたが呼んでいるウェブサービスを見ることなく誰もこの問題を解決できないと思います。 URLはありますか?またはドキュメンテーション? – ColinE

+0

返信ありがとうございましたColinE、しかしいくつかの問題のために私はURLとドキュメントを表示できません。しかし、私は1つの質問があります。サービス参照の追加を使用して通常のWebサービスを追加できますか? –

答えて

2

私は、Visual Studioの[サービス参照の追加]ダイアログで生成されたプロキシクラスを使用して、サーバー上で実行されるWebサービスクラスを混乱させると思います。

プロキシクラスは、Webサービス上の[WebMethod]メソッドを呼び出す方法を提供するメソッドを公開します。フィールド(公的なものでさえ同じ)では同じことをしません。

2つの異なるクライアントが両方とも 'msh'の値を変更した場合、大きなスケーリングの問題が発生するため、これをやりたいとは思わないでしょうか?

各サービスメソッドに必要な状態を渡す方がよいでしょう。

関連する問題