どのようにデスクトップとWebの両方に使用され、ライブラリ内の静的変数を処理するには?

StackOverflow https://stackoverflow.com/questions/1912890

  •  19-09-2019
  •  | 
  •  

質問

私は、静的変数を利用するいくつかのC#ライブラリクラスを持っています。私は両方のデスクトップとWebアプリケーションのためにこれらのライブラリクラスを使用します。問題は、私はちょうど発見したとして、静的変数は、Webサーバー上でとてもうまくダウンしていない、です。値は、ウェブサイトを使用して、すべてのセッション間で共有されています!

私のWebサーバー上の各セッションは、これらの変数のために、独自の独立した値を持っていることを確認しながら、私は、私のデスクトップアプリケーションで使用するために静的変数の機能を維持するにはどうすればよい - が、セッション自体の中に、それはまだ本当にのように振る舞います静的な?

役に立ちましたか?

解決

静的変数の値は、アプリケーションドメイン内のすべてのスレッド間で共有されています。 ASP.NETアプリケーションで現在のユーザーのみに関係のデータを格納するための推奨方法は、<のhref = "http://msdn.microsoft.com/en-us/library/system.web.sessionstate.httpsessionstateです。 ASPX」のrel = "nofollowをnoreferrer">セッションでます。

あなたは私はあなたが値を格納するためのメカニズムを提供しますこれらの静的変数のうちのインタフェースを抽出するために助言する。この共有ライブラリのコードを変更することができます。これは、各アプリケーションが独自の実装を提供できるようになります。 Windowsアプリケーションのためには、内部的に静的変数を使用して実装を使用することができます。 ASP.NETアプリケーションのためには、セッションを使用することができます。しかし、すべてのケースであなただけのインターフェイスを公開します。また、これはユニットテストに簡単にあなたのコードをレンダリングするのプラスの副作用を持つことになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top