2011-08-19 9 views
1

私はASMXタイプの2つのWebサービスを持っています。現在のところ、App.csではstaticとして宣言されています。 私は、Webサービスクライアント宣言の静的インスタンスと単一インスタンスの違いについて考えています。シングルトン対スタティック:Webサービスクライアント宣言のベストプラクティス

は静的では私がする必要があるすべては、この変数

static PreferencesWSSoapClient _preferenceWS; 

とシングルトンで財産

public static PreferencesWSSoapClient PreferenceWS 
    { 
     get 
     { 
      if (_preferenceWS == null) 
      { 
       _preferenceWS = new PreferencesWSSoapClient("PreferencesWSSoap", PrefUri.ToString()); 
      } 
      return _preferenceWS; 
     } 

    } 

を作成することです、私はシングルトンクラスを作成する必要があります。

質問はです。Webサービスクライアント宣言の静的インスタンスと単一インスタンスの違いは何ですか?

Webサービスクライアント宣言のベストプラクティスは何ですか?

答えて

0

リクエストごとに新しいクライアントオブジェクトを作成する方が安全です。生存期間がアプリケーションと等しい静的なWebクライアントインスタンスがevel自体であるだけでなく、私の考えを少し具体化してください。

SilverlightでWebサービスクライアントを使用する場合、これは非同期モードでのみ使用する必要があることを意味します。結果を得るためにイベントハンドラを使用する必要があります。アプリケーションにクライアントインスタンスが1つしかない場合は、イベントを誤って入力するのはかなり簡単です(ここでは、同じリスナーの複数の割り当てが可能になり、よく問題になることがあります)。

+0

スレッド問題はどうですか? – xscape

関連する問題