1

静的変数を利用する C# ライブラリ クラスがいくつかあります。これらのライブラリ クラスは、デスクトップ アプリケーションと Web アプリケーションの両方で使用しています。問題は、私が発見したばかりのように、静的変数が Web サーバー上でうまく機能しないことです。値は、Web サイトを使用するすべてのセッションで共有されます。

Web サーバー上の各セッションがこれらの変数に対して独自の独立した値を持っていることを確認しながら、静的変数の機能をデスクトップ アプリで使用するために保持するにはどうすればよいでしょうか。

4

1 に答える 1

5

静的変数値は、アプリケーション ドメイン内のすべてのスレッドで共有されます。ASP.NET アプリケーションで、現在のユーザーのみに関連するデータを格納するための推奨される方法は、Sessionです。

この共有ライブラリのコードを変更できる場合は、値を格納するメカニズムを提供するこれらの静的変数からインターフェイスを抽出することをお勧めします。これにより、各アプリケーションが独自の実装を提供できるようになります。Windows アプリケーションの場合、静的変数を内部で使用する実装を使用できます。ASP.NET アプリケーションの場合、Session. ただし、すべての場合で、インターフェイスのみを公開します。これには、コードを単体テストしやすくするというプラスの副作用もあります。

于 2009-12-16T07:18:27.853 に答える